mirror of
https://github.com/boostorg/fusion.git
synced 2026-05-03 19:30:56 +02:00
Merge pull request #31 from Flast/develop
Fix three test failures on older and c++03 compiler.
This commit is contained in:
@@ -1470,6 +1470,10 @@ rules for __element_conversion__.
|
||||
|
||||
Returns the result type of __make_map__.
|
||||
|
||||
The implementation depends on the support of variadic templates.
|
||||
|
||||
When variadic templates are not supported, make_map is a metafunction of the form:
|
||||
|
||||
[heading Synopsis]
|
||||
|
||||
template <
|
||||
@@ -1487,6 +1491,18 @@ default. Example:
|
||||
|
||||
#define FUSION_MAX_MAP_SIZE 20
|
||||
|
||||
When variadic templates are supported, make_map is a metafunction class of the form:
|
||||
|
||||
[heading Synopsis]
|
||||
|
||||
template <
|
||||
typename K0, typename K1,... typename KN>
|
||||
struct make_map
|
||||
{
|
||||
struct apply<
|
||||
typename T0, typename T1,... typename TN>
|
||||
};
|
||||
|
||||
[heading Parameters]
|
||||
|
||||
[table
|
||||
@@ -1497,9 +1513,16 @@ default. Example:
|
||||
|
||||
[heading Expression Semantics]
|
||||
|
||||
#if !defined(BOOST_FUSION_HAS_VARIADIC_MAP)
|
||||
resulf_of::make_map<K0, K1,... KN, T0, T1,... TN>::type;
|
||||
#else
|
||||
resulf_of::make_map<K0, K1,... KN>::apply<T0, T1,... TN>::type;
|
||||
#endif
|
||||
|
||||
[*Return type]: __result_of_make_map__`<K0, K0,... KN, T0, T1,... TN>::type`
|
||||
when variadic templates are not supported, or
|
||||
__result_of_make_map__`<K0, K0,... KN>::apply<T0, T1,... TN>::type`
|
||||
when variadic templates are supported.
|
||||
|
||||
[*Semantics]: A __map__ with __fusion_pair__ elements where the
|
||||
`second_type` is converted following the rules for __element_conversion__.
|
||||
@@ -1513,7 +1536,11 @@ default. Example:
|
||||
|
||||
[heading Example]
|
||||
|
||||
#if !defined(BOOST_FUSION_HAS_VARIADIC_MAP)
|
||||
result_of::make_map<int, double, char, double>::type
|
||||
#else
|
||||
result_of::make_map<int, double>::apply<char, double>::type
|
||||
#endif
|
||||
|
||||
[heading See also]
|
||||
|
||||
|
||||
@@ -392,9 +392,9 @@
|
||||
typename boost_fusion_detail_It1::index \
|
||||
>::type type; \
|
||||
\
|
||||
BOOST_FUSION_GPU_ENABLED \
|
||||
static type call(boost_fusion_detail_It1 const& it1, \
|
||||
boost_fusion_detail_It2 const& it2) \
|
||||
BOOST_FUSION_GPU_ENABLED \
|
||||
static type call(boost_fusion_detail_It1 const& /* it1 */, \
|
||||
boost_fusion_detail_It2 const& /* it2 */) \
|
||||
{ \
|
||||
return type(); \
|
||||
} \
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template<typename State, typename It, typename F>
|
||||
struct iter_fold_lvalue_state
|
||||
: boost::result_of<
|
||||
: fusion::detail::result_of_with_decltype<
|
||||
F(
|
||||
typename add_reference<typename add_const<State>::type>::type,
|
||||
It&)
|
||||
@@ -272,7 +272,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
typedef typename
|
||||
result_of_unrolled_iter_fold<
|
||||
typename boost::result_of<
|
||||
typename fusion::detail::result_of_with_decltype<
|
||||
F(
|
||||
StateRef,
|
||||
It0 const&
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template<typename State, typename It, typename F>
|
||||
struct reverse_fold_lvalue_state
|
||||
: boost::result_of<
|
||||
: fusion::detail::result_of_with_decltype<
|
||||
F(
|
||||
typename add_reference<typename add_const<State>::type>::type,
|
||||
typename fusion::result_of::deref<It>::type)
|
||||
@@ -272,7 +272,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
typedef typename
|
||||
result_of_unrolled_reverse_fold<
|
||||
typename boost::result_of<
|
||||
typename fusion::detail::result_of_with_decltype<
|
||||
F(
|
||||
StateRef,
|
||||
typename fusion::result_of::deref< It0 const>::type
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template<typename State, typename It, typename F>
|
||||
struct reverse_iter_fold_lvalue_state
|
||||
: boost::result_of<
|
||||
: fusion::detail::result_of_with_decltype<
|
||||
F(
|
||||
typename add_reference<typename add_const<State>::type>::type,
|
||||
It&)
|
||||
@@ -272,7 +272,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
typedef typename
|
||||
result_of_unrolled_reverse_iter_fold<
|
||||
typename boost::result_of<
|
||||
typename fusion::detail::result_of_with_decltype<
|
||||
F(
|
||||
StateRef,
|
||||
It0 const&
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
template <int size>
|
||||
struct as_deque;
|
||||
|
||||
@@ -43,6 +45,8 @@ namespace boost { namespace fusion { namespace detail
|
||||
return deque<>();
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||
@@ -67,6 +71,8 @@ namespace boost { namespace fusion { namespace detail
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
||||
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
||||
BOOST_PP_CAT(I, BOOST_PP_INC(n));
|
||||
@@ -87,6 +93,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
|
||||
#undef BOOST_FUSION_VALUE_OF_ITERATOR
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_deque<1>
|
||||
{
|
||||
@@ -218,4 +219,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_deque<1>
|
||||
{
|
||||
@@ -428,4 +429,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_deque<1>
|
||||
{
|
||||
@@ -638,4 +639,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_deque<1>
|
||||
{
|
||||
@@ -848,4 +849,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_deque<1>
|
||||
{
|
||||
@@ -1058,4 +1059,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
template <int size, bool is_assoc>
|
||||
struct as_map;
|
||||
|
||||
@@ -42,6 +44,8 @@ namespace boost { namespace fusion { namespace detail
|
||||
return map<>();
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||
@@ -66,6 +70,8 @@ namespace boost { namespace fusion { namespace detail
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
||||
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
||||
BOOST_PP_CAT(I, BOOST_PP_INC(n));
|
||||
@@ -90,6 +96,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
#undef BOOST_FUSION_PAIR_FROM_ITERATOR
|
||||
#undef BOOST_FUSION_DREF_CALL_ITERATOR
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <bool is_assoc>
|
||||
struct as_map<1, is_assoc>
|
||||
{
|
||||
@@ -218,4 +219,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(gen::D0::call(i0) , gen::D1::call(i1) , gen::D2::call(i2) , gen::D3::call(i3) , gen::D4::call(i4) , gen::D5::call(i5) , gen::D6::call(i6) , gen::D7::call(i7) , gen::D8::call(i8) , gen::D9::call(i9));
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <bool is_assoc>
|
||||
struct as_map<1, is_assoc>
|
||||
{
|
||||
@@ -428,4 +429,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(gen::D0::call(i0) , gen::D1::call(i1) , gen::D2::call(i2) , gen::D3::call(i3) , gen::D4::call(i4) , gen::D5::call(i5) , gen::D6::call(i6) , gen::D7::call(i7) , gen::D8::call(i8) , gen::D9::call(i9) , gen::D10::call(i10) , gen::D11::call(i11) , gen::D12::call(i12) , gen::D13::call(i13) , gen::D14::call(i14) , gen::D15::call(i15) , gen::D16::call(i16) , gen::D17::call(i17) , gen::D18::call(i18) , gen::D19::call(i19));
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <bool is_assoc>
|
||||
struct as_map<1, is_assoc>
|
||||
{
|
||||
@@ -638,4 +639,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(gen::D0::call(i0) , gen::D1::call(i1) , gen::D2::call(i2) , gen::D3::call(i3) , gen::D4::call(i4) , gen::D5::call(i5) , gen::D6::call(i6) , gen::D7::call(i7) , gen::D8::call(i8) , gen::D9::call(i9) , gen::D10::call(i10) , gen::D11::call(i11) , gen::D12::call(i12) , gen::D13::call(i13) , gen::D14::call(i14) , gen::D15::call(i15) , gen::D16::call(i16) , gen::D17::call(i17) , gen::D18::call(i18) , gen::D19::call(i19) , gen::D20::call(i20) , gen::D21::call(i21) , gen::D22::call(i22) , gen::D23::call(i23) , gen::D24::call(i24) , gen::D25::call(i25) , gen::D26::call(i26) , gen::D27::call(i27) , gen::D28::call(i28) , gen::D29::call(i29));
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <bool is_assoc>
|
||||
struct as_map<1, is_assoc>
|
||||
{
|
||||
@@ -848,4 +849,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(gen::D0::call(i0) , gen::D1::call(i1) , gen::D2::call(i2) , gen::D3::call(i3) , gen::D4::call(i4) , gen::D5::call(i5) , gen::D6::call(i6) , gen::D7::call(i7) , gen::D8::call(i8) , gen::D9::call(i9) , gen::D10::call(i10) , gen::D11::call(i11) , gen::D12::call(i12) , gen::D13::call(i13) , gen::D14::call(i14) , gen::D15::call(i15) , gen::D16::call(i16) , gen::D17::call(i17) , gen::D18::call(i18) , gen::D19::call(i19) , gen::D20::call(i20) , gen::D21::call(i21) , gen::D22::call(i22) , gen::D23::call(i23) , gen::D24::call(i24) , gen::D25::call(i25) , gen::D26::call(i26) , gen::D27::call(i27) , gen::D28::call(i28) , gen::D29::call(i29) , gen::D30::call(i30) , gen::D31::call(i31) , gen::D32::call(i32) , gen::D33::call(i33) , gen::D34::call(i34) , gen::D35::call(i35) , gen::D36::call(i36) , gen::D37::call(i37) , gen::D38::call(i38) , gen::D39::call(i39));
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <bool is_assoc>
|
||||
struct as_map<1, is_assoc>
|
||||
{
|
||||
@@ -1058,4 +1059,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(gen::D0::call(i0) , gen::D1::call(i1) , gen::D2::call(i2) , gen::D3::call(i3) , gen::D4::call(i4) , gen::D5::call(i5) , gen::D6::call(i6) , gen::D7::call(i7) , gen::D8::call(i8) , gen::D9::call(i9) , gen::D10::call(i10) , gen::D11::call(i11) , gen::D12::call(i12) , gen::D13::call(i13) , gen::D14::call(i14) , gen::D15::call(i15) , gen::D16::call(i16) , gen::D17::call(i17) , gen::D18::call(i18) , gen::D19::call(i19) , gen::D20::call(i20) , gen::D21::call(i21) , gen::D22::call(i22) , gen::D23::call(i23) , gen::D24::call(i24) , gen::D25::call(i25) , gen::D26::call(i26) , gen::D27::call(i27) , gen::D28::call(i28) , gen::D29::call(i29) , gen::D30::call(i30) , gen::D31::call(i31) , gen::D32::call(i32) , gen::D33::call(i33) , gen::D34::call(i34) , gen::D35::call(i35) , gen::D36::call(i36) , gen::D37::call(i37) , gen::D38::call(i38) , gen::D39::call(i39) , gen::D40::call(i40) , gen::D41::call(i41) , gen::D42::call(i42) , gen::D43::call(i43) , gen::D44::call(i44) , gen::D45::call(i45) , gen::D46::call(i46) , gen::D47::call(i47) , gen::D48::call(i48) , gen::D49::call(i49));
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -38,12 +38,12 @@ namespace boost { namespace fusion { namespace detail
|
||||
|
||||
template <typename Iterator>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
map_impl(Iterator const& iter, map_impl_from_iterator)
|
||||
map_impl(Iterator const&, map_impl_from_iterator)
|
||||
{}
|
||||
|
||||
template <typename Iterator>
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
void assign(Iterator const& iter, map_impl_from_iterator)
|
||||
void assign(Iterator const&, map_impl_from_iterator)
|
||||
{}
|
||||
|
||||
BOOST_FUSION_GPU_ENABLED
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
template <int size>
|
||||
struct as_set;
|
||||
|
||||
@@ -42,6 +44,8 @@ namespace boost { namespace fusion { namespace detail
|
||||
return set<>();
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||
@@ -66,6 +70,8 @@ namespace boost { namespace fusion { namespace detail
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
||||
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
||||
BOOST_PP_CAT(I, BOOST_PP_INC(n));
|
||||
@@ -86,6 +92,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
|
||||
#undef BOOST_FUSION_VALUE_OF_ITERATOR
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_set<1>
|
||||
{
|
||||
@@ -218,4 +219,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_set<1>
|
||||
{
|
||||
@@ -428,4 +429,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_set<1>
|
||||
{
|
||||
@@ -638,4 +639,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_set<1>
|
||||
{
|
||||
@@ -848,4 +849,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_set<1>
|
||||
{
|
||||
@@ -1058,4 +1059,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
template <int size>
|
||||
struct as_vector;
|
||||
|
||||
@@ -42,6 +44,8 @@ namespace boost { namespace fusion { namespace detail
|
||||
return vector0<>();
|
||||
}
|
||||
};
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||
@@ -66,6 +70,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
|
||||
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
|
||||
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
|
||||
@@ -87,6 +92,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
#undef BOOST_FUSION_NEXT_CALL_ITERATOR
|
||||
#undef BOOST_FUSION_VALUE_OF_ITERATOR
|
||||
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_vector<1>
|
||||
{
|
||||
@@ -218,4 +219,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_vector<1>
|
||||
{
|
||||
@@ -428,4 +429,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_vector<1>
|
||||
{
|
||||
@@ -638,4 +639,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_vector<1>
|
||||
{
|
||||
@@ -848,4 +849,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
==============================================================================*/
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_FUSION_BARRIER_BEGIN
|
||||
template <>
|
||||
struct as_vector<1>
|
||||
{
|
||||
@@ -1058,4 +1059,5 @@ namespace boost { namespace fusion { namespace detail
|
||||
return result(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49);
|
||||
}
|
||||
};
|
||||
BOOST_FUSION_BARRIER_END
|
||||
}}}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2014 Eric Niebler
|
||||
Copyright (c) 2014 Kohei Takahashi
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
@@ -13,4 +14,29 @@
|
||||
#define BOOST_FUSION_GPU_ENABLED BOOST_GPU_ENABLED
|
||||
#endif
|
||||
|
||||
// Enclose with inline namespace because unqualified lookup of GCC < 4.5 is broken.
|
||||
//
|
||||
// namespace detail {
|
||||
// struct foo;
|
||||
// struct X { };
|
||||
// }
|
||||
//
|
||||
// template <typename T> void foo(T) { }
|
||||
//
|
||||
// int main()
|
||||
// {
|
||||
// foo(detail::X());
|
||||
// // prog.cc: In function 'int main()':
|
||||
// // prog.cc:2: error: 'struct detail::foo' is not a function,
|
||||
// // prog.cc:6: error: conflict with 'template<class T> void foo(T)'
|
||||
// // prog.cc:10: error: in call to 'foo'
|
||||
// }
|
||||
namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
namespace barrier { }
|
||||
using namespace barrier;
|
||||
}}}
|
||||
#define BOOST_FUSION_BARRIER_BEGIN namespace barrier {
|
||||
#define BOOST_FUSION_BARRIER_END }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -7,8 +7,14 @@
|
||||
#if !defined(FUSION_RESULT_OF_10272014_0654)
|
||||
#define FUSION_RESULT_OF_10272014_0654
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/utility/result_of.hpp>
|
||||
#if !(defined(BOOST_NO_CXX11_DECLTYPE) || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES))
|
||||
|
||||
#if !defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
||||
#define BOOST_FUSION_NO_DECLTYPE_BASED_RESULT_OF
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_FUSION_NO_DECLTYPE_BASED_RESULT_OF)
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/mpl/or.hpp>
|
||||
#include <boost/mpl/has_xxx.hpp>
|
||||
@@ -21,12 +27,12 @@ namespace boost { namespace fusion { namespace detail
|
||||
// low level code. So far this is used only in the fold algorithm. This will
|
||||
// be removed once we overhaul fold.
|
||||
|
||||
#if defined(BOOST_NO_CXX11_DECLTYPE) || defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
||||
#if defined(BOOST_FUSION_NO_DECLTYPE_BASED_RESULT_OF)
|
||||
|
||||
template <typename Sig>
|
||||
struct result_of_with_decltype : boost::tr1_result_of<Sig> {};
|
||||
|
||||
#else
|
||||
#else // defined(BOOST_FUSION_NO_DECLTYPE_BASED_RESULT_OF)
|
||||
|
||||
BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
|
||||
BOOST_MPL_HAS_XXX_TEMPLATE_DEF(result)
|
||||
@@ -40,7 +46,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
boost::tr1_result_of<F(Args...)>,
|
||||
boost::detail::cpp0x_result_of<F(Args...)> >::type {};
|
||||
|
||||
#endif
|
||||
#endif // defined(BOOST_FUSION_NO_DECLTYPE_BASED_RESULT_OF)
|
||||
|
||||
}}}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
-NBOOST_FUSION_HAS_VARIADIC_MAP
|
||||
-NBOOST_FUSION_VECTOR_COPY_INIT
|
||||
-NBOOST_FUSION_VECTOR_CTOR_HELPER
|
||||
-NBOOST_FUSION_BARRIER_BEGIN
|
||||
-NBOOST_FUSION_BARRIER_END
|
||||
-S..\include
|
||||
-S..\..\..
|
||||
-S"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE"
|
||||
|
||||
@@ -132,7 +132,7 @@ struct functor
|
||||
|
||||
struct visitor
|
||||
{
|
||||
using result_type = int;
|
||||
typedef int result_type;
|
||||
|
||||
int operator()(int sum, long&)
|
||||
{
|
||||
@@ -238,7 +238,7 @@ main()
|
||||
}
|
||||
|
||||
{
|
||||
#if !defined(BOOST_NO_CXX11_DECLTYPE)
|
||||
#if !defined(BOOST_FUSION_NO_DECLTYPE_BASED_RESULT_OF)
|
||||
{
|
||||
boost::fusion::vector<int, double, long> container{1, 2, 3};
|
||||
functor f;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2010, 2012 Christopher Schmidt, Nathan Ridge
|
||||
|
||||
Distributed under the Boost Software Liceclse, Version 1.0. (See accompanying
|
||||
file LICEclsE_1_0.txt or copy at http://www.boost.org/LICEclsE_1_0.txt)
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
==============================================================================*/
|
||||
|
||||
#include <boost/detail/lightweight_test.hpp>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2008 Joel de Guzman
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
==============================================================================*/
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#if !defined(BOOST_NO_CXX11_HDR_TUPLE) && \
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2009 Joel de Guzman
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
==============================================================================*/
|
||||
|
||||
#include <boost/mpl/vector.hpp>
|
||||
#include <boost/fusion/support.hpp>
|
||||
|
||||
Reference in New Issue
Block a user