mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-23 17:17:23 +02:00
Merge various hotfixes into develop.
This commit is contained in:
@ -1470,6 +1470,10 @@ rules for __element_conversion__.
|
|||||||
|
|
||||||
Returns the result type of __make_map__.
|
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]
|
[heading Synopsis]
|
||||||
|
|
||||||
template <
|
template <
|
||||||
@ -1487,6 +1491,18 @@ default. Example:
|
|||||||
|
|
||||||
#define FUSION_MAX_MAP_SIZE 20
|
#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]
|
[heading Parameters]
|
||||||
|
|
||||||
[table
|
[table
|
||||||
@ -1497,9 +1513,16 @@ default. Example:
|
|||||||
|
|
||||||
[heading Expression Semantics]
|
[heading Expression Semantics]
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_HAS_VARIADIC_MAP)
|
||||||
resulf_of::make_map<K0, K1,... KN, T0, T1,... TN>::type;
|
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`
|
[*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
|
[*Semantics]: A __map__ with __fusion_pair__ elements where the
|
||||||
`second_type` is converted following the rules for __element_conversion__.
|
`second_type` is converted following the rules for __element_conversion__.
|
||||||
@ -1513,7 +1536,11 @@ default. Example:
|
|||||||
|
|
||||||
[heading Example]
|
[heading Example]
|
||||||
|
|
||||||
|
#if !defined(BOOST_FUSION_HAS_VARIADIC_MAP)
|
||||||
result_of::make_map<int, double, char, double>::type
|
result_of::make_map<int, double, char, double>::type
|
||||||
|
#else
|
||||||
|
result_of::make_map<int, double>::apply<char, double>::type
|
||||||
|
#endif
|
||||||
|
|
||||||
[heading See also]
|
[heading See also]
|
||||||
|
|
||||||
|
@ -392,9 +392,9 @@
|
|||||||
typename boost_fusion_detail_It1::index \
|
typename boost_fusion_detail_It1::index \
|
||||||
>::type type; \
|
>::type type; \
|
||||||
\
|
\
|
||||||
BOOST_FUSION_GPU_ENABLED \
|
BOOST_FUSION_GPU_ENABLED \
|
||||||
static type call(boost_fusion_detail_It1 const& it1, \
|
static type call(boost_fusion_detail_It1 const& /* it1 */, \
|
||||||
boost_fusion_detail_It2 const& it2) \
|
boost_fusion_detail_It2 const& /* it2 */) \
|
||||||
{ \
|
{ \
|
||||||
return type(); \
|
return type(); \
|
||||||
} \
|
} \
|
||||||
|
@ -38,12 +38,12 @@ namespace boost { namespace fusion { namespace detail
|
|||||||
|
|
||||||
template <typename Iterator>
|
template <typename Iterator>
|
||||||
BOOST_FUSION_GPU_ENABLED
|
BOOST_FUSION_GPU_ENABLED
|
||||||
map_impl(Iterator const& iter, map_impl_from_iterator)
|
map_impl(Iterator const&, map_impl_from_iterator)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <typename Iterator>
|
template <typename Iterator>
|
||||||
BOOST_FUSION_GPU_ENABLED
|
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
|
BOOST_FUSION_GPU_ENABLED
|
||||||
|
Reference in New Issue
Block a user