summaryrefslogtreecommitdiff
path: root/boost/fusion/container/vector/detail
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/container/vector/detail')
-rw-r--r--boost/fusion/container/vector/detail/as_vector.hpp134
-rw-r--r--boost/fusion/container/vector/detail/cpp03/as_vector.hpp139
-rw-r--r--boost/fusion/container/vector/detail/cpp03/limits.hpp24
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/as_vector.hpp)10
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector10.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/as_vector10.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector20.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/as_vector20.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector30.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/as_vector30.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector40.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/as_vector40.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector50.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/as_vector50.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector.hpp)10
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector10.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector20.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector30.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector40.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector50.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp)10
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser10.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser20.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser30.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser40.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser50.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp)10
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector10.hpp)4
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector20.hpp)4
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector30.hpp)4
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector40.hpp)4
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector50.hpp)4
-rw-r--r--boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp (renamed from boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp34
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector.hpp247
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector10.hpp105
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp64
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector20.hpp81
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp59
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector30.hpp80
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp59
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector40.hpp81
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp59
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector50.hpp80
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp59
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector_forward_ctor.hpp (renamed from boost/fusion/container/vector/detail/vector_forward_ctor.hpp)2
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp66
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector_n.hpp (renamed from boost/fusion/container/vector/detail/vector_n.hpp)0
-rw-r--r--boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp (renamed from boost/fusion/container/vector/detail/vector_n_chooser.hpp)16
-rw-r--r--boost/fusion/container/vector/detail/value_at_impl.hpp35
54 files changed, 1283 insertions, 201 deletions
diff --git a/boost/fusion/container/vector/detail/as_vector.hpp b/boost/fusion/container/vector/detail/as_vector.hpp
index b5f5e2d05f..eaaac89638 100644
--- a/boost/fusion/container/vector/detail/as_vector.hpp
+++ b/boost/fusion/container/vector/detail/as_vector.hpp
@@ -1,139 +1,19 @@
/*=============================================================================
- Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2014 Kohei Takahashi
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_PP_IS_ITERATING
-#if !defined(FUSION_AS_VECTOR_09222005_0950)
-#define FUSION_AS_VECTOR_09222005_0950
+#ifndef FUSION_AS_VECTOR_11052014_1801
+#define FUSION_AS_VECTOR_11052014_1801
-#include <boost/preprocessor/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/inc.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/iterator/value_of.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/support/config.hpp>
-namespace boost { namespace fusion { namespace detail
-{
-BOOST_FUSION_BARRIER_BEGIN
-
- template <int size>
- struct as_vector;
-
- template <>
- struct as_vector<0>
- {
- template <typename Iterator>
- struct apply
- {
- typedef vector0<> type;
- };
-
- template <typename Iterator>
- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
- static typename apply<Iterator>::type
- call(Iterator)
- {
- return vector0<>();
- }
- };
-
-BOOST_FUSION_BARRIER_END
-}}}
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/as_vector.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_vector" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
-#endif
-
-/*=============================================================================
- Copyright (c) 2001-2011 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
- This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion { namespace detail
-{
-BOOST_FUSION_BARRIER_BEGIN
-
-#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
- typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
- BOOST_PP_CAT(I, BOOST_PP_INC(n));
-
-#define BOOST_FUSION_NEXT_CALL_ITERATOR(z, n, data) \
- typename gen::BOOST_PP_CAT(I, BOOST_PP_INC(n)) \
- BOOST_PP_CAT(i, BOOST_PP_INC(n)) = fusion::next(BOOST_PP_CAT(i, n));
-
-#define BOOST_FUSION_VALUE_OF_ITERATOR(z, n, data) \
- typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
- BOOST_PP_CAT(T, n);
-
-#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/as_vector.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
-#include BOOST_PP_ITERATE()
-
-#undef BOOST_FUSION_NEXT_ITERATOR
-#undef BOOST_FUSION_NEXT_CALL_ITERATOR
-#undef BOOST_FUSION_VALUE_OF_ITERATOR
-
-BOOST_FUSION_BARRIER_END
-}}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-#else // defined(BOOST_PP_IS_ITERATING)
///////////////////////////////////////////////////////////////////////////////
-//
-// Preprocessor vertical repetition code
-//
+// Without variadics, we will use the PP version
///////////////////////////////////////////////////////////////////////////////
+# include <boost/fusion/container/vector/detail/cpp03/as_vector.hpp>
-#define N BOOST_PP_ITERATION()
-
- template <>
- struct as_vector<N>
- {
- template <typename I0>
- struct apply
- {
- BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _)
- BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
- typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
- };
-
- template <typename Iterator>
- BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
- static typename apply<Iterator>::type
- call(Iterator const& i0)
- {
- typedef apply<Iterator> gen;
- typedef typename gen::type result;
- BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
- return result(BOOST_PP_ENUM_PARAMS(N, *i));
- }
- };
+#endif
-#undef N
-#endif // defined(BOOST_PP_IS_ITERATING)
diff --git a/boost/fusion/container/vector/detail/cpp03/as_vector.hpp b/boost/fusion/container/vector/detail/cpp03/as_vector.hpp
new file mode 100644
index 0000000000..bd7fa76be6
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/as_vector.hpp
@@ -0,0 +1,139 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#ifndef BOOST_PP_IS_ITERATING
+#if !defined(FUSION_AS_VECTOR_09222005_0950)
+#define FUSION_AS_VECTOR_09222005_0950
+
+#include <boost/preprocessor/iterate.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/inc.hpp>
+#include <boost/preprocessor/dec.hpp>
+#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/iterator/next.hpp>
+
+namespace boost { namespace fusion { namespace detail
+{
+BOOST_FUSION_BARRIER_BEGIN
+
+ template <int size>
+ struct as_vector;
+
+ template <>
+ struct as_vector<0>
+ {
+ template <typename Iterator>
+ struct apply
+ {
+ typedef vector0<> type;
+ };
+
+ template <typename Iterator>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static typename apply<Iterator>::type
+ call(Iterator)
+ {
+ return vector0<>();
+ }
+ };
+
+BOOST_FUSION_BARRIER_END
+}}}
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/as_vector" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion { namespace detail
+{
+BOOST_FUSION_BARRIER_BEGIN
+
+#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
+ typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
+ BOOST_PP_CAT(I, BOOST_PP_INC(n));
+
+#define BOOST_FUSION_NEXT_CALL_ITERATOR(z, n, data) \
+ typename gen::BOOST_PP_CAT(I, BOOST_PP_INC(n)) \
+ BOOST_PP_CAT(i, BOOST_PP_INC(n)) = fusion::next(BOOST_PP_CAT(i, n));
+
+#define BOOST_FUSION_VALUE_OF_ITERATOR(z, n, data) \
+ typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
+ BOOST_PP_CAT(T, n);
+
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/as_vector.hpp>
+#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
+#include BOOST_PP_ITERATE()
+
+#undef BOOST_FUSION_NEXT_ITERATOR
+#undef BOOST_FUSION_NEXT_CALL_ITERATOR
+#undef BOOST_FUSION_VALUE_OF_ITERATOR
+
+BOOST_FUSION_BARRIER_END
+}}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+#else // defined(BOOST_PP_IS_ITERATING)
+///////////////////////////////////////////////////////////////////////////////
+//
+// Preprocessor vertical repetition code
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#define N BOOST_PP_ITERATION()
+
+ template <>
+ struct as_vector<N>
+ {
+ template <typename I0>
+ struct apply
+ {
+ BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _)
+ BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
+ typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
+ };
+
+ template <typename Iterator>
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ static typename apply<Iterator>::type
+ call(Iterator const& i0)
+ {
+ typedef apply<Iterator> gen;
+ typedef typename gen::type result;
+ BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
+ return result(BOOST_PP_ENUM_PARAMS(N, *i));
+ }
+ };
+
+#undef N
+#endif // defined(BOOST_PP_IS_ITERATING)
+
diff --git a/boost/fusion/container/vector/detail/cpp03/limits.hpp b/boost/fusion/container/vector/detail/cpp03/limits.hpp
new file mode 100644
index 0000000000..6e106144bb
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/limits.hpp
@@ -0,0 +1,24 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR_LIMITS_07072005_1246)
+#define FUSION_VECTOR_LIMITS_07072005_1246
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/support/detail/pp_round.hpp>
+
+#if !defined(FUSION_MAX_VECTOR_SIZE)
+# define FUSION_MAX_VECTOR_SIZE 10
+#else
+# if FUSION_MAX_VECTOR_SIZE < 3
+# undef FUSION_MAX_VECTOR_SIZE
+# define FUSION_MAX_VECTOR_SIZE 10
+# endif
+#endif
+
+#define FUSION_MAX_VECTOR_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_VECTOR_SIZE))
+
+#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/as_vector.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector.hpp
index c70f8a7c42..521443ef8e 100644
--- a/boost/fusion/container/vector/detail/preprocessed/as_vector.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector.hpp
@@ -8,15 +8,15 @@
==============================================================================*/
#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/container/vector/detail/preprocessed/as_vector10.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector10.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/container/vector/detail/preprocessed/as_vector20.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector20.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/container/vector/detail/preprocessed/as_vector30.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector30.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/container/vector/detail/preprocessed/as_vector40.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector40.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/container/vector/detail/preprocessed/as_vector50.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector50.hpp>
#else
#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/as_vector10.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector10.hpp
index 92fdbc07b4..92fdbc07b4 100644
--- a/boost/fusion/container/vector/detail/preprocessed/as_vector10.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector10.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/as_vector20.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector20.hpp
index fa99a4a58b..fa99a4a58b 100644
--- a/boost/fusion/container/vector/detail/preprocessed/as_vector20.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector20.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/as_vector30.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector30.hpp
index 578524a642..578524a642 100644
--- a/boost/fusion/container/vector/detail/preprocessed/as_vector30.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector30.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/as_vector40.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector40.hpp
index 93d63ee2f9..93d63ee2f9 100644
--- a/boost/fusion/container/vector/detail/preprocessed/as_vector40.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector40.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/as_vector50.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector50.hpp
index 6f6cc4802f..6f6cc4802f 100644
--- a/boost/fusion/container/vector/detail/preprocessed/as_vector50.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector50.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector.hpp
index 040fff948b..35b8e64329 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector.hpp
@@ -8,15 +8,15 @@
==============================================================================*/
#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/container/vector/detail/preprocessed/vvector10.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/container/vector/detail/preprocessed/vvector20.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/container/vector/detail/preprocessed/vvector30.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/container/vector/detail/preprocessed/vvector40.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/container/vector/detail/preprocessed/vvector50.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50.hpp>
#else
#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector10.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp
index d5e8aad116..d5e8aad116 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector10.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp
index 33f817ffaf..33f817ffaf 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector20.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp
index 91a9e59c46..91a9e59c46 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector20.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp
index b1672857a8..b1672857a8 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector30.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp
index c823452038..c823452038 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector30.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp
index 39f96aa836..39f96aa836 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector40.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp
index ec16fcd94a..ec16fcd94a 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector40.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp
index e1d6e0911a..e1d6e0911a 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector50.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp
index 2d787edfb6..2d787edfb6 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector50.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp
index 6829e9b50f..6829e9b50f 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser.hpp
index e956bf24e1..fb8f0e2f5b 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser.hpp
@@ -7,15 +7,15 @@
This is an auto-generated file. Do not edit!
==============================================================================*/
#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser10.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser20.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser30.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser40.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser50.hpp>
#else
#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser10.hpp
index d631b53208..d631b53208 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser10.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser20.hpp
index 9628f483ed..9628f483ed 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser20.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser30.hpp
index 38edabf45e..38edabf45e 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser30.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser40.hpp
index a784b75736..a784b75736 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser40.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser50.hpp
index fc9a260e20..fc9a260e20 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser50.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp
index e2576f9004..42c3f5bc6c 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp
@@ -8,15 +8,15 @@
==============================================================================*/
#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp>
#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp>
#else
#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10.hpp
index 792809bc9c..cd2bd58b31 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10.hpp
@@ -38,10 +38,6 @@ namespace boost { namespace fusion
vector(vector const& rhs)
: vec(rhs.vec) {}
template <typename Sequence>
-
-# if !defined(BOOST_CLANG)
- BOOST_CONSTEXPR
-# endif
BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp
index 97f64fa359..97f64fa359 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20.hpp
index f1d01617e1..809485fe25 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20.hpp
@@ -38,10 +38,6 @@ namespace boost { namespace fusion
vector(vector const& rhs)
: vec(rhs.vec) {}
template <typename Sequence>
-
-# if !defined(BOOST_CLANG)
- BOOST_CONSTEXPR
-# endif
BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp
index 8d4ea992d1..8d4ea992d1 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30.hpp
index dccc1f0186..3f75a05f35 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30.hpp
@@ -38,10 +38,6 @@ namespace boost { namespace fusion
vector(vector const& rhs)
: vec(rhs.vec) {}
template <typename Sequence>
-
-# if !defined(BOOST_CLANG)
- BOOST_CONSTEXPR
-# endif
BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp
index 03f289e9c9..03f289e9c9 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40.hpp
index 442a4fe995..6c7654ccc5 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40.hpp
@@ -38,10 +38,6 @@ namespace boost { namespace fusion
vector(vector const& rhs)
: vec(rhs.vec) {}
template <typename Sequence>
-
-# if !defined(BOOST_CLANG)
- BOOST_CONSTEXPR
-# endif
BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp
index 55c1097a75..55c1097a75 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50.hpp
index 5237a4f305..47fce0e19d 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50.hpp
@@ -38,10 +38,6 @@ namespace boost { namespace fusion
vector(vector const& rhs)
: vec(rhs.vec) {}
template <typename Sequence>
-
-# if !defined(BOOST_CLANG)
- BOOST_CONSTEXPR
-# endif
BOOST_FUSION_GPU_ENABLED
vector(Sequence const& rhs,
typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp
index 621f1606bf..621f1606bf 100644
--- a/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp
diff --git a/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp b/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp
new file mode 100644
index 0000000000..44feb6002c
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp
@@ -0,0 +1,34 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VALUE_AT_IMPL_05052005_0232)
+#define FUSION_VALUE_AT_IMPL_05052005_0232
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/mpl/at.hpp>
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+
+ namespace extension
+ {
+ template <typename Tag>
+ struct value_at_impl;
+
+ template <>
+ struct value_at_impl<vector_tag>
+ {
+ template <typename Sequence, typename N>
+ struct apply
+ {
+ typedef typename mpl::at<typename Sequence::types, N>::type type;
+ };
+ };
+ }
+}}
+
+#endif
diff --git a/boost/fusion/container/vector/detail/cpp03/vector.hpp b/boost/fusion/container/vector/detail/cpp03/vector.hpp
new file mode 100644
index 0000000000..5dcd688650
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector.hpp
@@ -0,0 +1,247 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR_07072005_1244)
+#define FUSION_VECTOR_07072005_1244
+
+#include <boost/preprocessor/iterate.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/fusion/container/vector/vector_fwd.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/is_base_of.hpp>
+#include <boost/detail/workaround.hpp>
+#include <boost/core/enable_if.hpp>
+
+#define FUSION_HASH #
+
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
+
+#define BOOST_FUSION_VECTOR_COPY_INIT() \
+ ctor_helper(rhs, is_base_of<vector, Sequence>()) \
+
+#define BOOST_FUSION_VECTOR_CTOR_HELPER() \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
+ static vector_n const& \
+ ctor_helper(vector const& rhs, mpl::true_) \
+ { \
+ return rhs.vec; \
+ } \
+ \
+ template <typename T> \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
+ static T const& \
+ ctor_helper(T const& rhs, mpl::false_) \
+ { \
+ return rhs; \
+ }
+
+#else
+
+#define BOOST_FUSION_VECTOR_COPY_INIT() \
+ rhs \
+
+#define BOOST_FUSION_VECTOR_CTOR_HELPER()
+
+#endif
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vvector" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct void_;
+ struct fusion_sequence_tag;
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
+ struct vector
+ : sequence_base<vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)> >
+ {
+ private:
+
+ typedef typename detail::vector_n_chooser<
+ BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>::type
+ vector_n;
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
+ friend struct vector;
+
+ public:
+
+ typedef typename vector_n::types types;
+ typedef typename vector_n::fusion_tag fusion_tag;
+ typedef typename vector_n::tag tag;
+ typedef typename vector_n::size size;
+ typedef typename vector_n::category category;
+ typedef typename vector_n::is_view is_view;
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector()
+ : vec() {}
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector(vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, U)> const& rhs)
+ : vec(rhs.vec) {}
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector(vector const& rhs)
+ : vec(rhs.vec) {}
+
+ template <typename Sequence>
+ BOOST_FUSION_GPU_ENABLED
+ vector(Sequence const& rhs,
+ typename boost::enable_if<traits::is_sequence<Sequence> >::type* = 0)
+ : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
+
+ // Expand a couple of forwarding constructors for arguments
+ // of type (T0), (T0, T1), (T0, T1, T2) etc. Example:
+ //
+ // vector(
+ // typename detail::call_param<T0>::type arg0
+ // , typename detail::call_param<T1>::type arg1)
+ // : vec(arg0, arg1) {}
+ #include <boost/fusion/container/vector/detail/cpp03/vector_forward_ctor.hpp>
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector&
+ operator=(vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, U)> const& rhs)
+ {
+ vec = rhs.vec;
+ return *this;
+ }
+
+ template <typename T>
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector&
+ operator=(T const& rhs)
+ {
+ vec = rhs;
+ return *this;
+ }
+
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector&
+ operator=(vector const& rhs)
+ {
+ vec = rhs.vec;
+ return *this;
+ }
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+#endif
+#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
+ (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector(vector&& rhs)
+ : vec(std::forward<vector_n>(rhs.vec)) {}
+
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector&
+ operator=(vector&& rhs)
+ {
+ vec = std::forward<vector_n>(rhs.vec);
+ return *this;
+ }
+
+ template <typename T>
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector&
+ operator=(T&& rhs)
+ {
+ vec = BOOST_FUSION_FWD_ELEM(T, rhs);
+ return *this;
+ }
+#endif
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+FUSION_HASH endif
+#endif
+
+ template <int N>
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ typename add_reference<
+ typename mpl::at_c<types, N>::type
+ >::type
+ at_impl(mpl::int_<N> index)
+ {
+ return vec.at_impl(index);
+ }
+
+ template <int N>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ typename add_reference<
+ typename add_const<
+ typename mpl::at_c<types, N>::type
+ >::type
+ >::type
+ at_impl(mpl::int_<N> index) const
+ {
+ return vec.at_impl(index);
+ }
+
+ template <typename I>
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ typename add_reference<
+ typename mpl::at<types, I>::type
+ >::type
+ at_impl(I /*index*/)
+ {
+ return vec.at_impl(mpl::int_<I::value>());
+ }
+
+ template<typename I>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ typename add_reference<
+ typename add_const<
+ typename mpl::at<types, I>::type
+ >::type
+ >::type
+ at_impl(I /*index*/) const
+ {
+ return vec.at_impl(mpl::int_<I::value>());
+ }
+
+ private:
+
+ BOOST_FUSION_VECTOR_CTOR_HELPER()
+ vector_n vec;
+ };
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#undef FUSION_HASH
+#endif
diff --git a/boost/fusion/container/vector/detail/cpp03/vector10.hpp b/boost/fusion/container/vector/detail/cpp03/vector10.hpp
new file mode 100644
index 0000000000..58a31ddec3
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector10.hpp
@@ -0,0 +1,105 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR10_05042005_0257)
+#define FUSION_VECTOR10_05042005_0257
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/container/vector/detail/at_impl.hpp>
+#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
+#include <boost/fusion/container/vector/detail/begin_impl.hpp>
+#include <boost/fusion/container/vector/detail/end_impl.hpp>
+
+#include <boost/mpl/void.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/vector/vector10.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/preprocessor/dec.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_shifted.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+ struct fusion_sequence_tag;
+ struct random_access_traversal_tag;
+
+ template <typename Dummy>
+ struct vector0 : sequence_base<vector0<Dummy> >
+ {
+ typedef mpl::vector0<> types;
+ typedef vector_tag fusion_tag;
+ typedef fusion_sequence_tag tag; // this gets picked up by MPL
+ typedef mpl::false_ is_view;
+ typedef random_access_traversal_tag category;
+ typedef mpl::int_<0> size;
+
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector0() BOOST_NOEXCEPT {}
+
+ template<typename Sequence>
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
+ vector0(Sequence const& /*seq*/) BOOST_NOEXCEPT
+ {}
+ };
+}}
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector10.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+ struct fusion_sequence_tag;
+ struct random_access_traversal_tag;
+
+#define FUSION_HASH #
+// expand vector1 to vector10
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector_n.hpp>
+#define BOOST_PP_ITERATION_LIMITS (1, 10)
+#include BOOST_PP_ITERATE()
+#undef FUSION_HASH
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
diff --git a/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp
new file mode 100644
index 0000000000..d221faece2
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp
@@ -0,0 +1,64 @@
+#ifndef BOOST_PP_IS_ITERATING
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_VECTOR10_FWD_HPP_INCLUDED)
+#define BOOST_FUSION_VECTOR10_FWD_HPP_INCLUDED
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+
+namespace boost { namespace fusion
+{
+ template <typename Dummy = void>
+ struct vector0;
+}}
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector10_fwd.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ // expand vector1 to vector10
+ #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp>
+ #define BOOST_PP_ITERATION_LIMITS (1, 10)
+ #include BOOST_PP_ITERATE()
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
+#else
+
+ template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
+ struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
+
+#endif
diff --git a/boost/fusion/container/vector/detail/cpp03/vector20.hpp b/boost/fusion/container/vector/detail/cpp03/vector20.hpp
new file mode 100644
index 0000000000..89f644c5a4
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector20.hpp
@@ -0,0 +1,81 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR20_05052005_0205)
+#define FUSION_VECTOR20_05052005_0205
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/container/vector/detail/at_impl.hpp>
+#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
+#include <boost/fusion/container/vector/detail/begin_impl.hpp>
+#include <boost/fusion/container/vector/detail/end_impl.hpp>
+
+#include <boost/mpl/void.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/vector/vector20.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/preprocessor/dec.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_shifted.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector20.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+ struct fusion_sequence_tag;
+ struct random_access_traversal_tag;
+
+#define FUSION_HASH #
+// expand vector11 to vector20
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector_n.hpp>
+#define BOOST_PP_ITERATION_LIMITS (11, 20)
+#include BOOST_PP_ITERATE()
+#undef FUSION_HASH
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
diff --git a/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp
new file mode 100644
index 0000000000..e69b59f4a6
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp
@@ -0,0 +1,59 @@
+#ifndef BOOST_PP_IS_ITERATING
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_VECTOR20_FWD_HPP_INCLUDED)
+#define BOOST_FUSION_VECTOR20_FWD_HPP_INCLUDED
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector20_fwd.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ // expand vector11 to vector20
+ #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp>
+ #define BOOST_PP_ITERATION_LIMITS (11, 20)
+ #include BOOST_PP_ITERATE()
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
+#else
+
+ template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
+ struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
+
+#endif
diff --git a/boost/fusion/container/vector/detail/cpp03/vector30.hpp b/boost/fusion/container/vector/detail/cpp03/vector30.hpp
new file mode 100644
index 0000000000..ad838c9ac6
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector30.hpp
@@ -0,0 +1,80 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR30_05052005_0206)
+#define FUSION_VECTOR30_05052005_0206
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/container/vector/detail/at_impl.hpp>
+#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
+#include <boost/fusion/container/vector/detail/begin_impl.hpp>
+#include <boost/fusion/container/vector/detail/end_impl.hpp>
+
+#include <boost/mpl/void.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/vector/vector30.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/preprocessor/dec.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_shifted.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector30.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+ struct fusion_sequence_tag;
+ struct random_access_traversal_tag;
+
+#define FUSION_HASH #
+// expand vector21 to vector30
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector_n.hpp>
+#define BOOST_PP_ITERATION_LIMITS (21, 30)
+#include BOOST_PP_ITERATE()
+#undef FUSION_HASH
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
diff --git a/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp
new file mode 100644
index 0000000000..e799b09657
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp
@@ -0,0 +1,59 @@
+#ifndef BOOST_PP_IS_ITERATING
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_VECTOR30_FWD_HPP_INCLUDED)
+#define BOOST_FUSION_VECTOR30_FWD_HPP_INCLUDED
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector30_fwd.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ // expand vector21 to vector30
+ #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp>
+ #define BOOST_PP_ITERATION_LIMITS (21, 30)
+ #include BOOST_PP_ITERATE()
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
+#else
+
+ template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
+ struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
+
+#endif
diff --git a/boost/fusion/container/vector/detail/cpp03/vector40.hpp b/boost/fusion/container/vector/detail/cpp03/vector40.hpp
new file mode 100644
index 0000000000..10770907eb
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector40.hpp
@@ -0,0 +1,81 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR40_05052005_0208)
+#define FUSION_VECTOR40_05052005_0208
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/container/vector/detail/at_impl.hpp>
+#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
+#include <boost/fusion/container/vector/detail/begin_impl.hpp>
+#include <boost/fusion/container/vector/detail/end_impl.hpp>
+
+#include <boost/mpl/void.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/vector/vector40.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/preprocessor/dec.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_shifted.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector40.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+ struct fusion_sequence_tag;
+ struct random_access_traversal_tag;
+
+#define FUSION_HASH #
+// expand vector31 to vector40
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector_n.hpp>
+#define BOOST_PP_ITERATION_LIMITS (31, 40)
+#include BOOST_PP_ITERATE()
+#undef FUSION_HASH
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
diff --git a/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp
new file mode 100644
index 0000000000..790dd76135
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp
@@ -0,0 +1,59 @@
+#ifndef BOOST_PP_IS_ITERATING
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_VECTOR40_FWD_HPP_INCLUDED)
+#define BOOST_FUSION_VECTOR40_FWD_HPP_INCLUDED
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector40_fwd.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ // expand vector31 to vector40
+ #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp>
+ #define BOOST_PP_ITERATION_LIMITS (31, 40)
+ #include BOOST_PP_ITERATE()
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
+#else
+
+ template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
+ struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
+
+#endif
diff --git a/boost/fusion/container/vector/detail/cpp03/vector50.hpp b/boost/fusion/container/vector/detail/cpp03/vector50.hpp
new file mode 100644
index 0000000000..6c0b48bbc4
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector50.hpp
@@ -0,0 +1,80 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR50_05052005_0207)
+#define FUSION_VECTOR50_05052005_0207
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/container/vector/detail/at_impl.hpp>
+#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
+#include <boost/fusion/container/vector/detail/begin_impl.hpp>
+#include <boost/fusion/container/vector/detail/end_impl.hpp>
+
+#include <boost/mpl/void.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/vector/vector50.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+
+#include <boost/preprocessor/dec.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_shifted.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector50.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+ struct fusion_sequence_tag;
+ struct random_access_traversal_tag;
+
+#define FUSION_HASH #
+// expand vector41 to vector50
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector_n.hpp>
+#define BOOST_PP_ITERATION_LIMITS (41, 50)
+#include BOOST_PP_ITERATE()
+#undef FUSION_HASH
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
diff --git a/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp
new file mode 100644
index 0000000000..4ec5e2812c
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp
@@ -0,0 +1,59 @@
+#ifndef BOOST_PP_IS_ITERATING
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(BOOST_FUSION_VECTOR50_FWD_HPP_INCLUDED)
+#define BOOST_FUSION_VECTOR50_FWD_HPP_INCLUDED
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/iteration/iterate.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector50_fwd.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2011 Eric Niebler
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ // expand vector41 to vector50
+ #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp>
+ #define BOOST_PP_ITERATION_LIMITS (41, 50)
+ #include BOOST_PP_ITERATE()
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
+
+#else
+
+ template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
+ struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
+
+#endif
diff --git a/boost/fusion/container/vector/detail/vector_forward_ctor.hpp b/boost/fusion/container/vector/detail/cpp03/vector_forward_ctor.hpp
index 8ec636074e..682f0ce367 100644
--- a/boost/fusion/container/vector/detail/vector_forward_ctor.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/vector_forward_ctor.hpp
@@ -11,7 +11,7 @@
#define FUSION_FORWARD_CTOR_FORWARD(z, n, _) BOOST_FUSION_FWD_ELEM(U##n, _##n)
#define BOOST_PP_FILENAME_1 \
- <boost/fusion/container/vector/detail/vector_forward_ctor.hpp>
+ <boost/fusion/container/vector/detail/cpp03/vector_forward_ctor.hpp>
#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
#include BOOST_PP_ITERATE()
diff --git a/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp b/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp
new file mode 100644
index 0000000000..f894b1a699
--- /dev/null
+++ b/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp
@@ -0,0 +1,66 @@
+/*=============================================================================
+ Copyright (c) 1999-2003 Jaakko Jarvi
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_VECTOR_FORWARD_07072005_0125)
+#define FUSION_VECTOR_FORWARD_07072005_0125
+
+#include <boost/fusion/support/config.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/limits.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+
+#include <boost/fusion/container/vector/detail/cpp03/vector10.hpp>
+#if (FUSION_MAX_VECTOR_SIZE > 10)
+#include <boost/fusion/container/vector/detail/cpp03/vector20.hpp>
+#endif
+#if (FUSION_MAX_VECTOR_SIZE > 20)
+#include <boost/fusion/container/vector/detail/cpp03/vector30.hpp>
+#endif
+#if (FUSION_MAX_VECTOR_SIZE > 30)
+#include <boost/fusion/container/vector/detail/cpp03/vector40.hpp>
+#endif
+#if (FUSION_MAX_VECTOR_SIZE > 40)
+#include <boost/fusion/container/vector/detail/cpp03/vector50.hpp>
+#endif
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vvector" FUSION_MAX_VECTOR_SIZE_STR "_fwd.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct void_;
+
+ template <
+ BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+ FUSION_MAX_VECTOR_SIZE, typename T, void_)
+ >
+ struct vector;
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
diff --git a/boost/fusion/container/vector/detail/vector_n.hpp b/boost/fusion/container/vector/detail/cpp03/vector_n.hpp
index 932ce36c7d..932ce36c7d 100644
--- a/boost/fusion/container/vector/detail/vector_n.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/vector_n.hpp
diff --git a/boost/fusion/container/vector/detail/vector_n_chooser.hpp b/boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp
index b0e69afc79..002889ceb5 100644
--- a/boost/fusion/container/vector/detail/vector_n_chooser.hpp
+++ b/boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp
@@ -8,21 +8,21 @@
#if !defined(FUSION_VECTOR_N_CHOOSER_07072005_1248)
#define FUSION_VECTOR_N_CHOOSER_07072005_1248
-#include <boost/fusion/container/vector/limits.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/limits.hpp>
// include vector0..N where N is FUSION_MAX_VECTOR_SIZE
-#include <boost/fusion/container/vector/vector10.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector10.hpp>
#if (FUSION_MAX_VECTOR_SIZE > 10)
-#include <boost/fusion/container/vector/vector20.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector20.hpp>
#endif
#if (FUSION_MAX_VECTOR_SIZE > 20)
-#include <boost/fusion/container/vector/vector30.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector30.hpp>
#endif
#if (FUSION_MAX_VECTOR_SIZE > 30)
-#include <boost/fusion/container/vector/vector40.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector40.hpp>
#endif
#if (FUSION_MAX_VECTOR_SIZE > 40)
-#include <boost/fusion/container/vector/vector50.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/vector50.hpp>
#endif
#include <boost/preprocessor/cat.hpp>
@@ -38,7 +38,7 @@ namespace boost { namespace fusion
}}
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp>
+#include <boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser.hpp>
#else
#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector_chooser" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
@@ -72,7 +72,7 @@ namespace boost { namespace fusion { namespace detail
};
#define BOOST_PP_FILENAME_1 \
- <boost/fusion/container/vector/detail/vector_n_chooser.hpp>
+ <boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp>
#define BOOST_PP_ITERATION_LIMITS (1, BOOST_PP_DEC(FUSION_MAX_VECTOR_SIZE))
#include BOOST_PP_ITERATE()
diff --git a/boost/fusion/container/vector/detail/value_at_impl.hpp b/boost/fusion/container/vector/detail/value_at_impl.hpp
index 06402b43ee..f71ca8486d 100644
--- a/boost/fusion/container/vector/detail/value_at_impl.hpp
+++ b/boost/fusion/container/vector/detail/value_at_impl.hpp
@@ -1,34 +1,19 @@
/*=============================================================================
- Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2014 Kohei Takahashi
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#if !defined(FUSION_VALUE_AT_IMPL_05052005_0232)
-#define FUSION_VALUE_AT_IMPL_05052005_0232
+#ifndef FUSION_VALUE_AT_IMPL_16122014_1641
+#define FUSION_VALUE_AT_IMPL_16122014_1641
+#include <boost/config.hpp>
#include <boost/fusion/support/config.hpp>
-#include <boost/mpl/at.hpp>
-namespace boost { namespace fusion
-{
- struct vector_tag;
-
- namespace extension
- {
- template <typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<vector_tag>
- {
- template <typename Sequence, typename N>
- struct apply
- {
- typedef typename mpl::at<typename Sequence::types, N>::type type;
- };
- };
- }
-}}
+///////////////////////////////////////////////////////////////////////////////
+// Without variadics, we will use the PP version
+///////////////////////////////////////////////////////////////////////////////
+# include <boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp>
#endif
+