fix trac issue #1608

[SVN r53915]
This commit is contained in:
Joel de Guzman
2009-06-15 01:54:01 +00:00
parent 363ff5750f
commit 63ce990a8c
5 changed files with 10 additions and 9 deletions

View File

@ -16,7 +16,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
struct clear struct clear
{ {
typedef vector0 type; typedef vector0<> type;
}; };
} }
@ -24,7 +24,7 @@ namespace boost { namespace fusion
inline typename result_of::clear<Sequence const>::type inline typename result_of::clear<Sequence const>::type
clear(Sequence const& seq) clear(Sequence const& seq)
{ {
return vector0(); return vector0<>();
} }
}} }}

View File

@ -32,14 +32,14 @@ namespace boost { namespace fusion
template <> template <>
struct make_vector<> struct make_vector<>
{ {
typedef vector0 type; typedef vector0<> type;
}; };
} }
inline vector0 inline vector0<>
make_vector() make_vector()
{ {
return vector0(); return vector0<>();
} }
#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \ #define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \

View File

@ -31,14 +31,14 @@ namespace boost { namespace fusion { namespace detail
template <typename Iterator> template <typename Iterator>
struct apply struct apply
{ {
typedef vector0 type; typedef vector0<> type;
}; };
template <typename Iterator> template <typename Iterator>
static typename apply<Iterator>::type static typename apply<Iterator>::type
call(Iterator) call(Iterator)
{ {
return vector0(); return vector0<>();
} }
}; };

View File

@ -48,7 +48,7 @@ namespace boost { namespace fusion { namespace detail
template <> template <>
struct vector_n_chooser<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, void_ BOOST_PP_INTERCEPT)> struct vector_n_chooser<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, void_ BOOST_PP_INTERCEPT)>
{ {
typedef vector0 type; typedef vector0<> type;
}; };
#define BOOST_PP_FILENAME_1 \ #define BOOST_PP_FILENAME_1 \

View File

@ -39,7 +39,8 @@ namespace boost { namespace fusion
struct fusion_sequence_tag; struct fusion_sequence_tag;
struct random_access_traversal_tag; struct random_access_traversal_tag;
struct vector0 : sequence_base<vector0> template <typename Dummy = void>
struct vector0 : sequence_base<vector0<Dummy> >
{ {
typedef mpl::vector0<> types; typedef mpl::vector0<> types;
typedef vector_tag fusion_tag; typedef vector_tag fusion_tag;