From 63ce990a8ced41226e238995ccee99ccf3b599ae Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Mon, 15 Jun 2009 01:54:01 +0000 Subject: [PATCH] fix trac issue #1608 [SVN r53915] --- include/boost/fusion/algorithm/transformation/clear.hpp | 4 ++-- include/boost/fusion/container/generation/make_vector.hpp | 6 +++--- include/boost/fusion/container/vector/detail/as_vector.hpp | 4 ++-- .../fusion/container/vector/detail/vector_n_chooser.hpp | 2 +- include/boost/fusion/container/vector/vector10.hpp | 3 ++- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/boost/fusion/algorithm/transformation/clear.hpp b/include/boost/fusion/algorithm/transformation/clear.hpp index 75328232..c9f849cb 100644 --- a/include/boost/fusion/algorithm/transformation/clear.hpp +++ b/include/boost/fusion/algorithm/transformation/clear.hpp @@ -16,7 +16,7 @@ namespace boost { namespace fusion template struct clear { - typedef vector0 type; + typedef vector0<> type; }; } @@ -24,7 +24,7 @@ namespace boost { namespace fusion inline typename result_of::clear::type clear(Sequence const& seq) { - return vector0(); + return vector0<>(); } }} diff --git a/include/boost/fusion/container/generation/make_vector.hpp b/include/boost/fusion/container/generation/make_vector.hpp index 264265a6..868ad0ca 100644 --- a/include/boost/fusion/container/generation/make_vector.hpp +++ b/include/boost/fusion/container/generation/make_vector.hpp @@ -32,14 +32,14 @@ namespace boost { namespace fusion template <> struct make_vector<> { - typedef vector0 type; + typedef vector0<> type; }; } - inline vector0 + inline vector0<> make_vector() { - return vector0(); + return vector0<>(); } #define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data) \ diff --git a/include/boost/fusion/container/vector/detail/as_vector.hpp b/include/boost/fusion/container/vector/detail/as_vector.hpp index 3cd6d454..a70fd4ae 100644 --- a/include/boost/fusion/container/vector/detail/as_vector.hpp +++ b/include/boost/fusion/container/vector/detail/as_vector.hpp @@ -31,14 +31,14 @@ namespace boost { namespace fusion { namespace detail template struct apply { - typedef vector0 type; + typedef vector0<> type; }; template static typename apply::type call(Iterator) { - return vector0(); + return vector0<>(); } }; diff --git a/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp b/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp index 248b5058..f4b85d89 100644 --- a/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp +++ b/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp @@ -48,7 +48,7 @@ namespace boost { namespace fusion { namespace detail template <> struct vector_n_chooser { - typedef vector0 type; + typedef vector0<> type; }; #define BOOST_PP_FILENAME_1 \ diff --git a/include/boost/fusion/container/vector/vector10.hpp b/include/boost/fusion/container/vector/vector10.hpp index 28531b6f..929815ab 100644 --- a/include/boost/fusion/container/vector/vector10.hpp +++ b/include/boost/fusion/container/vector/vector10.hpp @@ -39,7 +39,8 @@ namespace boost { namespace fusion struct fusion_sequence_tag; struct random_access_traversal_tag; - struct vector0 : sequence_base + template + struct vector0 : sequence_base > { typedef mpl::vector0<> types; typedef vector_tag fusion_tag;