forked from boostorg/fusion
Workarounds for Fusion on IBM xlc
[SVN r40766]
This commit is contained in:
@ -25,7 +25,11 @@ namespace boost { namespace fusion
|
|||||||
namespace traits
|
namespace traits
|
||||||
{
|
{
|
||||||
template<typename T, std::size_t N>
|
template<typename T, std::size_t N>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
struct tag_of<boost::array<T,N>, void >
|
||||||
|
#else
|
||||||
struct tag_of<boost::array<T,N> >
|
struct tag_of<boost::array<T,N> >
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef array_tag type;
|
typedef array_tag type;
|
||||||
};
|
};
|
||||||
|
@ -33,13 +33,21 @@ namespace boost { namespace fusion
|
|||||||
class T0, class T1, class T2, class T3, class T4,
|
class T0, class T1, class T2, class T3, class T4,
|
||||||
class T5, class T6, class T7, class T8, class T9
|
class T5, class T6, class T7, class T8, class T9
|
||||||
>
|
>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
struct tag_of<tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>, void >
|
||||||
|
#else
|
||||||
struct tag_of<tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >
|
struct tag_of<tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef boost_tuple_tag type;
|
typedef boost_tuple_tag type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Head, class Tail>
|
template <class Head, class Tail>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
struct tag_of<tuples::cons<Head, Tail>, void >
|
||||||
|
#else
|
||||||
struct tag_of<tuples::cons<Head, Tail> >
|
struct tag_of<tuples::cons<Head, Tail> >
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef boost_tuple_tag type;
|
typedef boost_tuple_tag type;
|
||||||
};
|
};
|
||||||
|
@ -20,7 +20,11 @@ namespace boost { namespace fusion
|
|||||||
namespace traits
|
namespace traits
|
||||||
{
|
{
|
||||||
template <typename T1, typename T2>
|
template <typename T1, typename T2>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
struct tag_of<std::pair<T1, T2>, void >
|
||||||
|
#else
|
||||||
struct tag_of<std::pair<T1, T2> >
|
struct tag_of<std::pair<T1, T2> >
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef struct_tag type;
|
typedef struct_tag type;
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,11 @@ namespace boost { namespace fusion
|
|||||||
namespace traits
|
namespace traits
|
||||||
{
|
{
|
||||||
template<BOOST_VARIANT_ENUM_PARAMS(typename T)>
|
template<BOOST_VARIANT_ENUM_PARAMS(typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
struct tag_of<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)>, void >
|
||||||
|
#else
|
||||||
struct tag_of<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
|
struct tag_of<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef variant_tag type;
|
typedef variant_tag type;
|
||||||
};
|
};
|
||||||
|
@ -22,7 +22,11 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename Sequence, typename F>
|
template <typename Sequence, typename F>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
struct transform<Sequence, F, void_>
|
||||||
|
#else
|
||||||
struct transform<Sequence, F>
|
struct transform<Sequence, F>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef transform_view<Sequence, F> type;
|
typedef transform_view<Sequence, F> type;
|
||||||
};
|
};
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum.hpp>
|
#include <boost/preprocessor/repetition/enum.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/preprocessor/arithmetic/inc.hpp>
|
#include <boost/preprocessor/arithmetic/inc.hpp>
|
||||||
#include <boost/preprocessor/iteration/iterate.hpp>
|
#include <boost/preprocessor/iteration/iterate.hpp>
|
||||||
#include <boost/mpl/vector.hpp>
|
#include <boost/mpl/vector.hpp>
|
||||||
@ -53,7 +54,13 @@ namespace boost { namespace fusion {
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, typename T) >
|
template< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, typename T) >
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct zip< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(ZIP_ITERATION), FUSION_MAX_ZIP_SEQUENCES, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct zip< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) >
|
struct zip< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) >
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef mpl::vector< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) > sequences;
|
typedef mpl::vector< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) > sequences;
|
||||||
typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
|
typedef typename mpl::transform<sequences, add_reference<mpl::_> >::type ref_params;
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/deque/deque.hpp>
|
#include <boost/fusion/container/deque/deque.hpp>
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
namespace boost { namespace fusion
|
||||||
@ -53,7 +54,13 @@ namespace boost { namespace fusion
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct deque_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_DEQUE_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct deque_tie<BOOST_PP_ENUM_PARAMS(N, T)>
|
struct deque_tie<BOOST_PP_ENUM_PARAMS(N, T)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef deque<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
typedef deque<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/list/list.hpp>
|
#include <boost/fusion/container/list/list.hpp>
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
namespace boost { namespace fusion
|
||||||
@ -53,7 +54,13 @@ namespace boost { namespace fusion
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct list_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_LIST_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct list_tie<BOOST_PP_ENUM_PARAMS(N, T)>
|
struct list_tie<BOOST_PP_ENUM_PARAMS(N, T)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef list<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
typedef list<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/deque/deque.hpp>
|
#include <boost/fusion/container/deque/deque.hpp>
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
|
|
||||||
@ -72,7 +73,13 @@ namespace boost { namespace fusion
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_deque< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_DEQUE_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct make_deque<BOOST_PP_ENUM_PARAMS(N, T)>
|
struct make_deque<BOOST_PP_ENUM_PARAMS(N, T)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef deque<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
typedef deque<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/list/list.hpp>
|
#include <boost/fusion/container/list/list.hpp>
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
|
|
||||||
@ -65,7 +66,13 @@ namespace boost { namespace fusion
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_list< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_LIST_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct make_list<BOOST_PP_ENUM_PARAMS(N, T)>
|
struct make_list<BOOST_PP_ENUM_PARAMS(N, T)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
typedef list<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/map/map.hpp>
|
#include <boost/fusion/container/map/map.hpp>
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
#include <boost/fusion/support/pair.hpp>
|
#include <boost/fusion/support/pair.hpp>
|
||||||
@ -77,7 +78,13 @@ namespace boost { namespace fusion
|
|||||||
BOOST_PP_ENUM_PARAMS(N, typename K)
|
BOOST_PP_ENUM_PARAMS(N, typename K)
|
||||||
, BOOST_PP_ENUM_PARAMS(N, typename D)
|
, BOOST_PP_ENUM_PARAMS(N, typename D)
|
||||||
>
|
>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_map<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D) BOOST_PP_REPEAT_FROM_TO(N, FUSION_MAX_VECTOR_SIZE, TEXT, void_) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_)>
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct make_map<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D)>
|
struct make_map<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef map<BOOST_PP_ENUM(N, BOOST_FUSION_PAIR, _)> type;
|
typedef map<BOOST_PP_ENUM(N, BOOST_FUSION_PAIR, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/set/set.hpp>
|
#include <boost/fusion/container/set/set.hpp>
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
#include <boost/fusion/support/pair.hpp>
|
#include <boost/fusion/support/pair.hpp>
|
||||||
@ -67,7 +68,13 @@ namespace boost { namespace fusion
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_set< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_SET_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct make_set<BOOST_PP_ENUM_PARAMS(N, T)>
|
struct make_set<BOOST_PP_ENUM_PARAMS(N, T)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
typedef set<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/vector/vector.hpp>
|
#include <boost/fusion/container/vector/vector.hpp>
|
||||||
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
#include <boost/fusion/support/detail/as_fusion_element.hpp>
|
||||||
|
|
||||||
@ -65,7 +66,13 @@ namespace boost { namespace fusion
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct make_vector< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct make_vector<BOOST_PP_ENUM_PARAMS(N, T)>
|
struct make_vector<BOOST_PP_ENUM_PARAMS(N, T)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef vector<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
typedef vector<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/map/map.hpp>
|
#include <boost/fusion/container/map/map.hpp>
|
||||||
#include <boost/fusion/container/map/limits.hpp>
|
#include <boost/fusion/container/map/limits.hpp>
|
||||||
#include <boost/fusion/support/pair.hpp>
|
#include <boost/fusion/support/pair.hpp>
|
||||||
@ -80,7 +81,14 @@ namespace boost { namespace fusion
|
|||||||
BOOST_PP_ENUM_PARAMS(N, typename K)
|
BOOST_PP_ENUM_PARAMS(N, typename K)
|
||||||
, BOOST_PP_ENUM_PARAMS(N, typename D)
|
, BOOST_PP_ENUM_PARAMS(N, typename D)
|
||||||
>
|
>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
|
||||||
|
struct map_tie<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D) BOOST_PP_REPEAT_FROM_TO(N, FUSION_MAX_MAP_SIZE, TEXT, void_) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_MAP_SIZE, TEXT, void_)>
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct map_tie<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D)>
|
struct map_tie<BOOST_PP_ENUM_PARAMS(N, K), BOOST_PP_ENUM_PARAMS(N, D)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef map<BOOST_PP_ENUM(N, BOOST_FUSION_TIED_PAIR, _)> type;
|
typedef map<BOOST_PP_ENUM(N, BOOST_FUSION_TIED_PAIR, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <boost/preprocessor/repetition/enum_params.hpp>
|
#include <boost/preprocessor/repetition/enum_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
|
||||||
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
|
||||||
|
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
|
||||||
#include <boost/fusion/container/vector/vector.hpp>
|
#include <boost/fusion/container/vector/vector.hpp>
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
namespace boost { namespace fusion
|
||||||
@ -52,7 +53,13 @@ namespace boost { namespace fusion
|
|||||||
namespace result_of
|
namespace result_of
|
||||||
{
|
{
|
||||||
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
template <BOOST_PP_ENUM_PARAMS(N, typename T)>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
#define TEXT(z, n, text) , text
|
||||||
|
struct vector_tie< BOOST_PP_ENUM_PARAMS(N, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(N), FUSION_MAX_VECTOR_SIZE, TEXT, void_) >
|
||||||
|
#undef TEXT
|
||||||
|
#else
|
||||||
struct vector_tie<BOOST_PP_ENUM_PARAMS(N, T)>
|
struct vector_tie<BOOST_PP_ENUM_PARAMS(N, T)>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
typedef vector<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)> type;
|
||||||
};
|
};
|
||||||
|
@ -73,7 +73,11 @@ namespace boost { namespace fusion
|
|||||||
|
|
||||||
// Unary Version
|
// Unary Version
|
||||||
template <typename Sequence, typename F>
|
template <typename Sequence, typename F>
|
||||||
|
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
|
||||||
|
struct transform_view<Sequence, F, void_> : sequence_base<transform_view<Sequence, F, void_> >
|
||||||
|
#else
|
||||||
struct transform_view<Sequence, F> : sequence_base<transform_view<Sequence, F> >
|
struct transform_view<Sequence, F> : sequence_base<transform_view<Sequence, F> >
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
typedef transform_view_tag fusion_tag;
|
typedef transform_view_tag fusion_tag;
|
||||||
typedef fusion_sequence_tag tag; // this gets picked up by MPL
|
typedef fusion_sequence_tag tag; // this gets picked up by MPL
|
||||||
|
Reference in New Issue
Block a user