summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/src/boost/fusion/sequence/intrinsic')
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at.hpp5
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_c.hpp1
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_key.hpp4
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/back.hpp3
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/begin.hpp3
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp10
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp4
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp8
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp2
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp1
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/empty.hpp2
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/end.hpp3
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/front.hpp3
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/has_key.hpp2
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/segments.hpp3
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/size.hpp2
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at.hpp1
-rw-r--r--3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at_key.hpp1
18 files changed, 51 insertions, 7 deletions
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at.hpp
index 92da7bb..aa0d974 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_AT_05042005_0722)
#define FUSION_AT_05042005_0722
+#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
@@ -71,6 +72,7 @@ namespace boost { namespace fusion
template <typename N, typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -82,6 +84,7 @@ namespace boost { namespace fusion
}
template <typename N, typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::at<Sequence const, N>::type
at(Sequence const& seq)
{
@@ -89,6 +92,7 @@ namespace boost { namespace fusion
}
template <int N, typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -100,6 +104,7 @@ namespace boost { namespace fusion
}
template <int N, typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::at_c<Sequence const, N>::type
at_c(Sequence const& seq)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_c.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_c.hpp
index 449e3f4..327798c 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_c.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_c.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_AT_C_08252008_0308)
#define FUSION_AT_C_08252008_0308
+#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#endif
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_key.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_key.hpp
index 24c2fff..844de84 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_key.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/at_key.hpp
@@ -8,6 +8,7 @@
#if !defined(BOOST_FUSION_AT_KEY_20060304_1755)
#define BOOST_FUSION_AT_KEY_20060304_1755
+#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/algorithm/query/find.hpp>
@@ -37,6 +38,7 @@ namespace boost { namespace fusion
>::type
type;
+ BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
@@ -72,6 +74,7 @@ namespace boost { namespace fusion
}
template <typename Key, typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -83,6 +86,7 @@ namespace boost { namespace fusion
}
template <typename Key, typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::at_key<Sequence const, Key>::type
at_key(Sequence const& seq)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/back.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/back.hpp
index 0a4d482..f934355 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/back.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/back.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_BACK_09162005_0350)
#define FUSION_BACK_09162005_0350
+#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/iterator/prior.hpp>
@@ -26,6 +27,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::back<Sequence>::type
back(Sequence& seq)
{
@@ -33,6 +35,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::back<Sequence const>::type
back(Sequence const& seq)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/begin.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/begin.hpp
index 7a7ecf6..af4e312 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/begin.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/begin.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_BEGIN_04052005_1132)
#define FUSION_BEGIN_04052005_1132
+#include <boost/fusion/support/config.hpp>
#include <boost/blank.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/if.hpp>
@@ -70,6 +71,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -81,6 +83,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
index 968718e..81d0966 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED
+#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp>
#include <boost/fusion/iterator/segmented_iterator.hpp>
#include <boost/fusion/view/iterator_range.hpp>
@@ -19,22 +20,23 @@ namespace boost { namespace fusion { namespace detail
{
//auto segmented_begin( seq )
//{
- // return make_segmented_iterator( segmented_begin_impl( seq, nil ) );
+ // return make_segmented_iterator( segmented_begin_impl( seq, nil_ ) );
//}
- template <typename Sequence, typename Nil = fusion::nil>
+ template <typename Sequence, typename Nil_ = fusion::nil_>
struct segmented_begin
{
typedef
segmented_iterator<
- typename segmented_begin_impl<Sequence, Nil>::type
+ typename segmented_begin_impl<Sequence, Nil_>::type
>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq)
{
return type(
- segmented_begin_impl<Sequence, Nil>::call(seq, Nil()));
+ segmented_begin_impl<Sequence, Nil_>::call(seq, Nil_()));
}
};
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp
index 5069432..2ab4627 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED
+#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/fusion/container/list/cons_fwd.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
@@ -37,6 +38,7 @@ namespace boost { namespace fusion { namespace detail
typedef cons<range_type, Context> type;
typedef mpl::false_ continue_type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, State const&, Context const& context, segmented_begin_fun)
{
return type(range_type(fusion::begin(seq), fusion::end(seq)), context);
@@ -62,6 +64,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename fold_impl::type type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, Stack const& stack)
{
return fold_impl::call(seq, end_impl::call(seq, stack), stack, segmented_begin_fun());
@@ -76,6 +79,7 @@ namespace boost { namespace fusion { namespace detail
typedef iterator_range<begin_type, end_type> pair_type;
typedef cons<pair_type, Stack> type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, Stack stack)
{
return type(pair_type(fusion::begin(seq), fusion::end(seq)), stack);
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
index 469862a..c26865a 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED
+#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp>
#include <boost/fusion/iterator/segmented_iterator.hpp>
#include <boost/fusion/container/list/cons.hpp>
@@ -18,19 +19,20 @@ namespace boost { namespace fusion { namespace detail
// return make_segmented_iterator( segmented_end_impl( seq ) );
//}
- template <typename Sequence, typename Nil = fusion::nil>
+ template <typename Sequence, typename Nil_ = fusion::nil_>
struct segmented_end
{
typedef
segmented_iterator<
- typename segmented_end_impl<Sequence, Nil>::type
+ typename segmented_end_impl<Sequence, Nil_>::type
>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Sequence & seq)
{
return type(
- segmented_end_impl<Sequence, Nil>::call(seq, Nil()));
+ segmented_end_impl<Sequence, Nil_>::call(seq, Nil_()));
}
};
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp
index 149027b..9be1504 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_END_IMPL_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_END_IMPL_HPP_INCLUDED
+#include <boost/fusion/support/config.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/remove_reference.hpp>
@@ -47,6 +48,7 @@ namespace boost { namespace fusion { namespace detail
typedef iterator_range<end_type, end_type> pair_type;
typedef cons<pair_type, Stack> type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Sequence & seq, Stack stack)
{
end_type end = fusion::end(fusion::segments(seq));
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp
index 03cef28..4defced 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_SIZE_08112006_1141)
#define BOOST_FUSION_SEGMENTED_SIZE_08112006_1141
+#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/mpl/fold.hpp>
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/empty.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/empty.hpp
index a9928ab..3c8666a 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/empty.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/empty.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_EMPTY_09162005_0335)
#define FUSION_EMPTY_09162005_0335
+#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/mpl/bool.hpp>
@@ -50,6 +51,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::empty<Sequence>::type
empty(Sequence const&)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/end.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/end.hpp
index 995ed7a..3e69518 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/end.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/end.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_END_04052005_1141)
#define FUSION_END_04052005_1141
+#include <boost/fusion/support/config.hpp>
#include <boost/blank.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/if.hpp>
@@ -70,6 +71,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -81,6 +83,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/front.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/front.hpp
index 0e50e3c..6d939da 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/front.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/front.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_FRONT_09162005_0343)
#define FUSION_FRONT_09162005_0343
+#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/iterator/deref.hpp>
@@ -25,6 +26,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::front<Sequence>::type
front(Sequence& seq)
{
@@ -32,6 +34,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::front<Sequence const>::type
front(Sequence const& seq)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/has_key.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/has_key.hpp
index 9e0969a..bba2c69 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/has_key.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/has_key.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_HAS_KEY_09232005_1454)
#define FUSION_HAS_KEY_09232005_1454
+#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/iterator/equal_to.hpp>
@@ -67,6 +68,7 @@ namespace boost { namespace fusion
}
template <typename Key, typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::has_key<Sequence, Key>::type
has_key(Sequence const&)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/segments.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/segments.hpp
index afd5d40..a1bbaca 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/segments.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/segments.hpp
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTS_04052005_1141)
#define BOOST_FUSION_SEGMENTS_04052005_1141
+#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
@@ -53,6 +54,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -65,6 +67,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::segments<Sequence const>::type
segments(Sequence const& seq)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/size.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/size.hpp
index 0a1c165..51e613f 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/size.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/size.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_SIZE_05052005_0214)
#define FUSION_SIZE_05052005_0214
+#include <boost/fusion/support/config.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/int.hpp>
@@ -77,6 +78,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
inline typename result_of::size<Sequence>::type
size(Sequence const&)
{
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at.hpp
index ce314a8..362669b 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at.hpp
@@ -7,6 +7,7 @@
#if !defined(FUSION_VALUE_AT_05052005_0229)
#define FUSION_VALUE_AT_05052005_0229
+#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/support/tag_of.hpp>
diff --git a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at_key.hpp b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at_key.hpp
index 23d34ee..6d8be3f 100644
--- a/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at_key.hpp
+++ b/3rdParty/Boost/src/boost/fusion/sequence/intrinsic/value_at_key.hpp
@@ -8,6 +8,7 @@
#if !defined(FUSION_VALUE_AT_KEY_05052005_0229)
#define FUSION_VALUE_AT_KEY_05052005_0229
+#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/iterator/value_of_data.hpp>