Workarounds for Fusion on IBM xlc

[SVN r40766]
This commit is contained in:
Joel de Guzman
2007-11-05 02:10:42 +00:00
parent b9ab685b44
commit 1c5bc499a7
16 changed files with 99 additions and 0 deletions

View File

@ -25,7 +25,11 @@ namespace boost { namespace fusion
namespace traits
{
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> >
#endif
{
typedef array_tag type;
};

View File

@ -33,13 +33,21 @@ namespace boost { namespace fusion
class T0, class T1, class T2, class T3, class T4,
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> >
#endif
{
typedef boost_tuple_tag type;
};
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> >
#endif
{
typedef boost_tuple_tag type;
};

View File

@ -20,7 +20,11 @@ namespace boost { namespace fusion
namespace traits
{
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> >
#endif
{
typedef struct_tag type;
};

View File

@ -18,7 +18,11 @@ namespace boost { namespace fusion
namespace traits
{
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)> >
#endif
{
typedef variant_tag type;
};