Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r55049 - in sandbox/SOC/2009/fusion: . boost/fusion/adapted/detail/struct boost/fusion/algorithm/query/detail boost/fusion/container/list boost/fusion/container/list/detail/list/pp boost/fusion/container/list/detail/list/variadic_templates boost/fusion/container/map boost/fusion/container/map/detail/pp boost/fusion/container/map/detail/variadic_templates boost/fusion/container/set boost/fusion/container/set/detail/pp boost/fusion/container/set/detail/variadic_templates boost/fusion/container/vector boost/fusion/container/vector/detail/pp boost/fusion/container/vector/detail/variadic_templates boost/fusion/functional/invocation/detail/decltype_and_variadic_templates boost/fusion/include boost/fusion/iterator boost/fusion/view/single_view libs/fusion/doc workaround
From: mr.chr.schmidt_at_[hidden]
Date: 2009-07-20 18:48:50


Author: cschmidt
Date: 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
New Revision: 55049
URL: http://svn.boost.org/trac/boost/changeset/55049

Log:
fixed pp vector
Added:
   sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp (contents, props changed)
Removed:
   sandbox/SOC/2009/fusion/workaround/
Text files modified:
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/pp/as_list.hpp | 12
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/variadic_templates/as_list_impl.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/pp/as_map.hpp | 10
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/variadic_templates/as_map_impl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/pp/as_set.hpp | 19 +-
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/variadic_templates/as_set_impl.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/as_vector.hpp | 21 +-
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp | 313 ++++++++++++++++++++++-----------------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/as_vector_impl.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp | 30 +--
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp | 126 ++++++++-------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp | 69 +-------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp | 33 +--
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp | 57 +------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp | 57 +------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp | 57 +------
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/decltype_and_variadic_templates/invoke_impl_detail.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp | 8
   sandbox/SOC/2009/fusion/build.bat | 29 +--
   sandbox/SOC/2009/fusion/libs/fusion/doc/iterator.qbk | 8
   29 files changed, 369 insertions(+), 500 deletions(-)

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -9,8 +9,6 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_EXTENSION_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_EXTENSION_HPP
 
-#include <boost/type_traits/add_const.hpp>
-
 namespace boost { namespace fusion
 {
     struct struct_tag;

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -13,7 +13,7 @@
 #include <boost/fusion/iterator/value_of.hpp>
 #include <boost/fusion/iterator/equal_to.hpp>
 #include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/advance.hpp>
+#include <boost/fusion/iterator/advance_c.hpp>
 #include <boost/fusion/iterator/distance.hpp>
 #include <boost/fusion/support/category_of.hpp>
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -115,7 +115,7 @@
 #undef CONS_CTOR
 
         template<typename SeqAssign>
- cons(BOOST_FUSION_R_ELSE_CLREF(SeqAssign) seq,
+ cons(BOOST_FUSION_R_ELSE_LREF(SeqAssign) seq,
              typename enable_if<
                  is_sequence_assign<SeqAssign> >::type* =NULL)
           : car(fusion::front(seq.get()))

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -8,7 +8,6 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_CONVERT_HPP
 #define BOOST_FUSION_CONTAINER_LIST_CONVERT_HPP
 
-#include <boost/fusion/container/list/list.hpp>
 #include <boost/fusion/support/ref.hpp>
 
 #include <boost/fusion/container/list/detail/list/convert_impl.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/pp/as_list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/pp/as_list.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/pp/as_list.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -87,14 +87,14 @@
             typedef list<BOOST_PP_ENUM_PARAMS(N, T)> type;
         };
 
- template <typename Iterator>
- static typename apply<Iterator>::type
- call(Iterator const& i0)
+ template <typename Ito>
+ static typename apply<Ito>::type
+ call(Ito const& it0)
         {
- typedef apply<Iterator> gen;
- typedef typename gen::type result;
+ typedef apply<It> gen;
             BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
- return result(BOOST_PP_ENUM_PARAMS(N, fusion::deref(i)));
+ return typename gen::type(
+ BOOST_PP_ENUM_PARAMS(N, fusion::deref(i)));
         }
     };
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/variadic_templates/as_list_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/variadic_templates/as_list_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/variadic_templates/as_list_impl.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -6,6 +6,7 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VARIADIC_TEMPLATES_AS_LIST_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VARIADIC_TEMPLATES_AS_LIST_IMPL_HPP
 
+#include <boost/fusion/container/list.hpp>
 #include <boost/fusion/mpl/begin.hpp>
 #include <boost/fusion/mpl/end.hpp>
 #include <boost/fusion/support/variadic_templates/variadic_quote.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -8,7 +8,6 @@
 #ifndef BOOST_FUSION_CONTAINER_MAP_CONVERT_HPP
 #define BOOST_FUSION_CONTAINER_MAP_CONVERT_HPP
 
-#include <boost/fusion/container/map/map.hpp>
 #include <boost/fusion/support/ref.hpp>
 
 #include <boost/fusion/container/map/detail/convert_impl.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/pp/as_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/pp/as_map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/pp/as_map.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -87,14 +87,14 @@
             typedef map<BOOST_PP_ENUM_PARAMS(N, T)> type;
         };
 
- template <typename Iterator>
+ template <typename It>
         static typename apply<Iterator>::type
- call(Iterator const& i0)
+ call(It const& it0)
         {
- typedef apply<Iterator> gen;
- typedef typename gen::type result;
+ typedef apply<It> gen;
             BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
- return result(BOOST_PP_ENUM_PARAMS(N, fusion::deref(i)));
+ return typename gen::type(
+ BOOST_PP_ENUM_PARAMS(N, fusion::deref(i)));
         }
     };
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/variadic_templates/as_map_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/variadic_templates/as_map_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/variadic_templates/as_map_impl.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -6,7 +6,7 @@
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VARIADIC_TEMPLATES_AS_MAP_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_VARIADIC_TEMPLATES_AS_MAP_IMPL_HPP
 
-//TODO cschmidt: ?!
+#include <boost/fusion/container/map/map.hpp>
 #include <boost/fusion/mpl/begin.hpp>
 #include <boost/fusion/mpl/end.hpp>
 #include <boost/fusion/support/variadic_templates/variadic_quote.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -187,7 +187,7 @@
         template <class Key>
         typename detail::add_lref<
             typename add_const<typename meta_at_impl<Key>::type>::type
- >::type
+ >::type
         at_impl(mpl::identity<Key>) const
         {
             return data.at_impl(

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -8,7 +8,6 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_CONVERT_HPP
 #define BOOST_FUSION_CONTAINER_SET_CONVERT_HPP
 
-#include <boost/fusion/container/set/set.hpp>
 #include <boost/fusion/support/ref.hpp>
 
 #include <boost/fusion/container/set/detail/convert_impl.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/pp/as_set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/pp/as_set.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/pp/as_set.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -9,6 +9,11 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_PP_AS_SET_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_PP_AS_SET_HPP
 
+#include <boost/fusion/container/set/set.hpp>
+#include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/iterator/next.hpp>
+
 #include <boost/preprocessor/iterate.hpp>
 #include <boost/preprocessor/repetition/enum_params.hpp>
 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
@@ -16,10 +21,6 @@
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/inc.hpp>
 #include <boost/preprocessor/dec.hpp>
-#include <boost/fusion/container/set/set.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
 {
@@ -86,14 +87,14 @@
             typedef set<BOOST_PP_ENUM_PARAMS(N, T)> type;
         };
 
- template <typename Iterator>
- static typename apply<Iterator>::type
- call(Iterator const& i0)
+ template <typename It>
+ static typename apply<It>::type
+ call(It const& it0)
         {
             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, fusion::deref(i)));
+ return typename gen::type(
+ BOOST_PP_ENUM_PARAMS(N, fusion::deref(i)));
         }
     };
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/variadic_templates/as_set_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/variadic_templates/as_set_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/variadic_templates/as_set_impl.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -6,6 +6,7 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_VARIADIC_TEMPLATES_AS_SET_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_VARIADIC_TEMPLATES_AS_SET_IMPL_HPP
 
+#include <boost/fusion/container/set/set.hpp>
 #include <boost/fusion/mpl/begin.hpp>
 #include <boost/fusion/mpl/end.hpp>
 #include <boost/fusion/support/variadic_templates/variadic_quote.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -8,7 +8,6 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_CONVERT_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_CONVERT_HPP
 
-#include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/container/vector/detail/convert_impl.hpp>
 #include <boost/fusion/support/ref.hpp>
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/as_vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/as_vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/as_vector.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -9,6 +9,11 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_AS_VECTOR_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_AS_VECTOR_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/preprocessor/iterate.hpp>
 #include <boost/preprocessor/repetition/enum_params.hpp>
 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
@@ -16,10 +21,6 @@
 #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
 {
@@ -69,14 +70,14 @@
             typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
         };
 
- template <typename Iterator>
- static typename apply<Iterator>::type
- call(Iterator const& i0)
+ template <typename It>
+ static typename apply<It>::type
+ call(It const& it0)
         {
- typedef apply<Iterator> gen;
- typedef typename gen::type result;
+ typedef apply<It> gen;
             BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_FUSION_NEXT_CALL_ITERATOR, _)
- return result(BOOST_PP_ENUM_PARAMS(N, fusion::deref(i)));
+ return typename gen::type(
+ BOOST_PP_ENUM_PARAMS(N, fusion::deref(i)));
         }
     };
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -1,76 +1,59 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+// Copyright Christopher Schmidt 2009.
+// 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
+# include <boost/fusion/container/vector/vector_fwd.hpp>
+# include <boost/fusion/sequence/intrinsic/begin.hpp>
+# include <boost/fusion/iterator/deref.hpp>
+# include <boost/fusion/iterator/next.hpp>
+# include <boost/fusion/iterator/advance_c.hpp>
+# include <boost/fusion/support/sequence_base.hpp>
+# include <boost/fusion/support/ref.hpp>
+# include <boost/fusion/support/sequence_assign.hpp>
+
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/dec.hpp>
+# include <boost/preprocessor/empty.hpp>
+# include <boost/preprocessor/repetition/enum.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/repetition/repeat_from_to.hpp>
+# include <boost/preprocessor/iteration/iterate.hpp>
+
+# include <boost/mpl/int.hpp>
+# include <boost/mpl/bool.hpp>
+# include <boost/mpl/vector.hpp>
+# include <boost/mpl/at.hpp>
+
+# include <boost/type_traits/add_const.hpp>
+# include <boost/utility/enable_if.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/vector_iterator.hpp>
+# include <boost/fusion/container/vector/detail/begin_impl.hpp>
+# include <boost/fusion/container/vector/detail/end_impl.hpp>
+# include <boost/fusion/container/vector/detail/deref_impl.hpp>
+# include <boost/fusion/container/vector/detail/value_of_impl.hpp>
+# include <boost/fusion/container/vector/detail/next_impl.hpp>
+# include <boost/fusion/container/vector/detail/prior_impl.hpp>
+# include <boost/fusion/container/vector/detail/equal_to_impl.hpp>
+# include <boost/fusion/container/vector/detail/distance_impl.hpp>
+# include <boost/fusion/container/vector/detail/advance_impl.hpp>
+
+# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
+# define BOOST_PP_ITERATION_LIMITS (BOOST_FUSION_FROM, BOOST_FUSION_TO)
+# include BOOST_PP_ITERATE()
 
- 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)
-==============================================================================*/
-
-//TODO!!!
-#define FUSION_MEMBER_DEFAULT_INIT(z, n, _) m##n(T##n())
-#define FUSION_MEMBER_INIT(z, n, _) m##n(_##n)
-#define FUSION_COPY_INIT(z, n, _) m##n(other.m##n)
-#define FUSION_MEMBER_DECL(z, n, _) T##n m##n;
-
-#define FUSION_MEMBER_ASSIGN(z, n, _) \
- this->BOOST_PP_CAT(m, n) = vec.BOOST_PP_CAT(m, n);
-
-#define FUSION_DEREF_MEMBER_ASSIGN(z, n, _) \
- this->BOOST_PP_CAT(m, n) = *BOOST_PP_CAT(i, n);
-
-#define FUSION_AT_IMPL(z, n, _) \
- typename add_reference<T##n>::type \
- at_impl(mpl::int_<n>) { return this->m##n; } \
- typename add_reference<typename add_const<T##n>::type>::type \
- at_impl(mpl::int_<n>) const { return this->m##n; }
-
-#define FUSION_ITER_DECL_VAR(z, n, _) \
- typedef typename result_of::next< \
- BOOST_PP_CAT(I, BOOST_PP_DEC(n))>::type BOOST_PP_CAT(I, n); \
- BOOST_PP_CAT(I, n) BOOST_PP_CAT(i, n) \
- = fusion::next(BOOST_PP_CAT(i, BOOST_PP_DEC(n)));
-
-#define BOOST_FUSION_DEREF_I(Z,N,_) fusion::deref(*BOOST_PP_CAT(i,N))
-
-#define N BOOST_PP_ITERATION()
-
-#if N
- template <BOOST_PP_ENUM_PARAMS(N, typename T)>
- struct BOOST_PP_CAT(vector_data, N)
- {
- BOOST_PP_CAT(vector_data, N)()
- : BOOST_PP_ENUM(N, FUSION_MEMBER_DEFAULT_INIT, _) {}
-
- BOOST_PP_CAT(vector_data, N)
- (BOOST_PP_ENUM_BINARY_PARAMS(N, const T,& _))
- : BOOST_PP_ENUM(N, FUSION_MEMBER_INIT, _)
- {}
-
- BOOST_PP_CAT(vector_data, N)(
- BOOST_PP_CAT(vector_data, N) const& other)
- : BOOST_PP_ENUM(N, FUSION_COPY_INIT, _) {}
-
- BOOST_PP_CAT(vector_data, N)&
- operator=(BOOST_PP_CAT(vector_data, N) const& vec)
- {
- BOOST_PP_REPEAT(N, FUSION_MEMBER_ASSIGN, _)
- return *this;
- }
-
- template <typename Sequence>
- static BOOST_PP_CAT(vector_data, N)
- init_from_sequence(Sequence const& seq)
- {
- typedef typename result_of::begin<Sequence const>::type I0;
- I0 i0 = fusion::begin(seq);
- BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_ITER_DECL_VAR, _)
- return BOOST_PP_CAT(vector_data, N) (BOOST_PP_ENUM(N, BOOST_FUSION_DEREF_I,_));
- }
-
- BOOST_PP_REPEAT(N, FUSION_MEMBER_DECL, _)
- };
-#endif
+#else
+# define N BOOST_PP_ITERATION()
 
-#if !N
+namespace boost { namespace fusion
+{
+# if !N
     struct void_;
 
     template <class T0=void_>
@@ -79,17 +62,12 @@
     template<>
     struct vector0<void_>
       : sequence_base<vector0<void_> >
-#else
+# else
     template <BOOST_PP_ENUM_PARAMS(N, typename T)>
     struct BOOST_PP_CAT(vector, N)
       : sequence_base<BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N,T)> >
- , BOOST_PP_CAT(vector_data, N)<BOOST_PP_ENUM_PARAMS(N, T)>
-#endif
+# endif
     {
- typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> this_type;
-#if N
- typedef BOOST_PP_CAT(vector_data, N)<BOOST_PP_ENUM_PARAMS(N, T)> base_type;
-#endif
         typedef mpl::BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> types;
         typedef vector_tag fusion_tag;
         typedef fusion_sequence_tag tag; // this gets picked up by MPL
@@ -97,81 +75,148 @@
         typedef random_access_traversal_tag category;
         typedef mpl::int_<N> size;
 
- BOOST_PP_CAT(vector, N)()
- {}
+# define BOOST_FUSION_DEFAULT_MEMBER_INIT(Z, N, _) BOOST_PP_CAT(m,N)()
 
+ BOOST_PP_CAT(vector, N)()
 #if N
-#if (N == 1)
- explicit
+ : BOOST_PP_ENUM(N, BOOST_FUSION_DEFAULT_MEMBER_INIT, _)
 #endif
- BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, const T,& _))
- : base_type(BOOST_PP_ENUM_PARAMS(N, _))
         {}
-#endif
 
-#if N
- template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-#endif
+# undef BOOST_FUSION_DEFAULT_MEMBER_INIT
+
+ //TODO macro names
+# if N
+# define BOOST_FUSION_SELF_TYPE\
+ BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N,T)>
+
+# define BOOST_FUSION_MEMBER_INIT(Z, N, COMBINATION)\
+ BOOST_PP_CAT(m,N)(\
+ BOOST_FUSION_FORWARD(BOOST_FUSION_SELF_TYPE COMBINATION,vec).\
+ BOOST_PP_CAT(m,N))
+
+# define VECTOR_CTOR(COMBINATION,_)\
+ BOOST_PP_CAT(vector, N)(\
+ BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N,T)> COMBINATION vec)\
+ : BOOST_PP_ENUM(N, BOOST_FUSION_MEMBER_INIT, COMBINATION)\
+ {}
+
+ BOOST_FUSION_ALL_CV_REF_COMBINATIONS(VECTOR_CTOR,_)
+
+# undef BOOST_FUSION_MEMBER_INIT
+# undef BOOST_FUSION_SELF_TYPE
+# else
+# define VECTOR_CTOR(COMBINATION,_)\
+ BOOST_PP_CAT(vector, N)(BOOST_PP_CAT(vector, N)<void_> COMBINATION vec)\
+ {}
+
+ BOOST_FUSION_ALL_CV_REF_COMBINATIONS(VECTOR_CTOR,_)
+
+# endif
+# undef VECTOR_CTOR
+
+# if N
+# define BOOST_FUSION_MEMBER_INIT(Z, N, _)\
+ BOOST_PP_CAT(m,N)(\
+ BOOST_FUSION_FORWARD(BOOST_PP_CAT(A,N), BOOST_PP_CAT(_,N)))
+
+ template <BOOST_PP_ENUM_PARAMS(N, typename A)>
+# if (N == 1)
+ explicit
+# endif
         BOOST_PP_CAT(vector, N)(
- BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, U)> const& vec)
-#if N
- : base_type(BOOST_PP_ENUM_PARAMS(N, vec.m))
-#endif
+ BOOST_PP_ENUM_BINARY_PARAMS(
+ N,
+ A,
+ BOOST_FUSION_R_ELSE_CLREF(BOOST_PP_EMPTY()) _)
+ )
+ : BOOST_PP_ENUM(N, BOOST_FUSION_MEMBER_INIT, _)
         {}
 
- template<typename Seq>
- BOOST_PP_CAT(vector, N)(detail::sequence_assign_type<Seq> const& seq)
-#if N
- : base_type(base_type::init_from_sequence(seq.get()))
-#endif
+# undef BOOST_FUSION_MEMBER_INIT
+# endif
+
+# define BOOST_FUSION_MEMBER_INIT(Z, N, _)\
+ BOOST_PP_CAT(m,N)(\
+ fusion::deref(fusion::advance_c<N>(fusion::begin(seq.get()))))
+
+ template<typename SeqAssign>
+ BOOST_PP_CAT(vector,N)(BOOST_FUSION_R_ELSE_LREF(SeqAssign) seq,
+ typename enable_if<
+ is_sequence_assign<SeqAssign> >::type* =NULL)
+# if N
+ : BOOST_PP_ENUM(N, BOOST_FUSION_MEMBER_INIT, _)
+# endif
         {}
 
-#if N
- template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-#endif
- BOOST_PP_CAT(vector, N)&
- operator=(BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, U)> const& vec)
- {
- BOOST_PP_REPEAT(N, FUSION_MEMBER_ASSIGN, _)
- return *this;
- }
+# undef BOOST_FUSION_MEMBER_INIT
+
+ template <typename Seq>
+ BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)>&
+ operator=(BOOST_FUSION_R_ELSE_LREF(Seq) seq)
+ {
+# if N
+ typedef typename
+ result_of::begin<BOOST_FUSION_R_ELSE_LREF(Seq)>::type
+ It0;
+ It0 it0 = fusion::begin(seq);
+
+# define BOOST_FUSION_DEREF_MEMBER_ASSIGN(Z, N, _)\
+ typedef typename\
+ result_of::next<BOOST_PP_CAT(It, BOOST_PP_DEC(N))>::type\
+ BOOST_PP_CAT(It, N);\
+ BOOST_PP_CAT(It, N) BOOST_PP_CAT(it, N)=\
+ fusion::next(BOOST_PP_CAT(it, BOOST_PP_DEC(N)));\
+ \
+ BOOST_PP_CAT(m, N) = fusion::deref(BOOST_PP_CAT(it, N));
+
+ BOOST_PP_REPEAT_FROM_TO(1, N, BOOST_FUSION_DEREF_MEMBER_ASSIGN, _)
+
+# undef BOOST_FUSION_DEREF_MEMBER_ASSIGN
+# endif
 
- template <typename Sequence>
- this_type&
- operator=(Sequence const& seq)
- {
- typedef typename result_of::begin<Sequence const>::type I0;
- I0 i0 = fusion::begin(seq);
- BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_ITER_DECL_VAR, _)
- BOOST_PP_REPEAT(N, FUSION_DEREF_MEMBER_ASSIGN, _)
             return *this;
         }
 
- BOOST_PP_REPEAT(N, FUSION_AT_IMPL, _)
-
         template<typename I>
         typename detail::add_lref<typename mpl::at<types, I>::type>::type
- at_impl(I i)
+ at_impl(I)
         {
- return this->at_impl(mpl::int_<I::value>());
+ return at_impl(mpl::int_<I::value>());
         }
 
         template<typename I>
- typename detail::add_lref<typename add_const<typename mpl::at<types, I>::type>::type>::type
- at_impl(I i) const
- {
- return this->at_impl(mpl::int_<I::value>());
- }
- };
+ typename detail::add_lref<
+ typename add_const<typename mpl::at<types, I>::type>::type
+ >::type
+ at_impl(I) const
+ {
+ return at_impl(mpl::int_<I::value>());
+ }
+
+ //TODO: no add_reference
+# define BOOST_FUSION_MEMBER_DECL(Z, N, _)\
+ typename detail::add_lref<BOOST_PP_CAT(T,N)>::type\
+ at_impl(mpl::int_<N>)\
+ {\
+ return BOOST_PP_CAT(m,N);\
+ }\
+ \
+ typename detail::add_lref<\
+ typename add_const<BOOST_PP_CAT(T,N)>::type\
+ >::type\
+ at_impl(mpl::int_<N>) const\
+ {\
+ return BOOST_PP_CAT(m,N);\
+ }\
+ \
+ BOOST_PP_CAT(T,N) BOOST_PP_CAT(m,N);
 
-#undef N
-#undef FUSION_MEMBER_DEFAULT_INIT
-#undef FUSION_MEMBER_INIT
-#undef FUSION_COPY_INIT
-#undef FUSION_MEMBER_DECL
-#undef FUSION_MEMBER_ASSIGN
-#undef FUSION_DEREF_MEMBER_ASSIGN
-#undef FUSION_AT_IMPL
-#undef FUSION_ITER_DECL_VAR
-#undef BOOST_FUSION_DEREF_I
+ BOOST_PP_REPEAT(N, BOOST_FUSION_MEMBER_DECL, _)
+
+# undef BOOST_FUSION_MEMBER_DECL
+ };
+}}
+# undef N
+#endif
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -10,7 +10,6 @@
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
 
 #include <boost/fusion/container/vector/limits.hpp>
-
 // include vector0..N where N is FUSION_MAX_VECTOR_SIZE
 #include <boost/fusion/container/vector/vector10.hpp>
 #if (FUSION_MAX_VECTOR_SIZE > 10)

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/as_vector_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/as_vector_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/as_vector_impl.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -6,6 +6,7 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VARIADIC_TEMPLATES_AS_VECTOR_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VARIADIC_TEMPLATES_AS_VECTOR_IMPL_HPP
 
+#include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/mpl/begin.hpp>
 #include <boost/fusion/mpl/end.hpp>
 #include <boost/fusion/support/variadic_templates/variadic_quote.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -38,23 +38,19 @@
             typedef void_ head;
 
             vector_impl()
- {
- }
+ {}
 
             vector_impl(assign_directly)
- {
- }
+ {}
 
             template<typename It>
             vector_impl(assign_by_deref,It const&)
- {
- }
+ {}
 
             template<typename It>
             void
             assign(It const&)
- {
- }
+ {}
 
             void at_impl();
         };
@@ -79,17 +75,15 @@
             Head _element;
 
         protected:
- vector_impl():
- _element()
- {
- }
+ vector_impl()
+ : _element()
+ {}
 
             template<typename It>
             vector_impl(assign_by_deref,It const& it)
               : base(assign_by_deref(),fusion::next(it))
               , _element(fusion::deref(it))
- {
- }
+ {}
 
             template<typename It>
             void
@@ -106,8 +100,7 @@
                 : base(assign_directly(),
                         BOOST_FUSION_FORWARD(OtherElements,other_elements)...)
                 , _element(BOOST_FUSION_FORWARD(OtherHead,other_head))
- {
- }
+ {}
 
             typename detail::add_lref<Head>::type
             at_impl(mpl::int_<Index>)
@@ -146,15 +139,14 @@
         vector(vector COMBINATION vec)\
           : base(detail::assign_by_deref(),\
                 fusion::begin(BOOST_FUSION_FORWARD(vector COMBINATION,vec)))\
- {\
- }
+ {}
 
         BOOST_FUSION_ALL_CV_REF_COMBINATIONS(VECTOR_CTOR,_)
 
 #undef VECTOR_CTOR
 
         template<typename SeqAssign>
- vector(BOOST_FUSION_R_ELSE_CLREF(SeqAssign) seq,
+ vector(BOOST_FUSION_R_ELSE_LREF(SeqAssign) seq,
                typename enable_if<
                    is_sequence_assign<SeqAssign> >::type* =NULL)
           : base(detail::assign_by_deref(),fusion::begin(seq.get()))

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -3,72 +3,86 @@
 // (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#define N BOOST_PP_ITERATION()
+#ifndef BOOST_PP_IS_ITERATING
+# include <boost/fusion/container/vector/vector.hpp>
 
-//cschmidt: template typedefs if possible...
+# include <boost/preprocessor/iteration/iterate.hpp>
 
-#if !N
-struct void_;
+# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
+# define BOOST_PP_ITERATION_LIMITS (BOOST_FUSION_FROM, BOOST_FUSION_TO)
+# include BOOST_PP_ITERATE()
 
-template <class T0=void_>
-struct vector0;
-
-template<>
-struct vector0<void_>
 #else
-template <BOOST_PP_ENUM_PARAMS(N, typename T)>
-#endif
-struct BOOST_PP_CAT(vector, N)
- : vector<BOOST_PP_ENUM_PARAMS(N, T)>
+# define N BOOST_PP_ITERATION()
+
+ //cschmidt: template typedefs if possible...
+namespace boost { namespace fusion
 {
-private:
- typedef vector<BOOST_PP_ENUM_PARAMS(N, T)> base;
 
-public:
- BOOST_PP_CAT(vector, N)()
- {}
-
-#define VECTOR_CTOR(COMBINATION,_)\
- BOOST_PP_CAT(vector, N)(BOOST_PP_CAT(vector, N) COMBINATION vec)\
- : base(sequence_assign(\
- BOOST_FUSION_FORWARD(BOOST_PP_CAT(vector, N) COMBINATION,vec)))\
- {}
-
- BOOST_FUSION_ALL_CV_REF_COMBINATIONS(VECTOR_CTOR,_)
-
-#undef VECTOR_CTOR
-
- template<typename Arg>
- BOOST_PP_CAT(vector, N)(BOOST_FUSION_R_ELSE_CLREF(Arg) arg)
- : base(BOOST_FUSION_FORWARD(Arg,arg))
- {}
-
-#if N > 1
-# ifdef BOOST_NO_RVALUE_REFERENCES
- BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, const T, & a))
- : base(BOOST_PP_ENUM_PARAMS(N, a))
- {}
+# if !N
+ struct void_;
+
+ template <class T0=void_>
+ struct vector0;
+
+ template<>
+ struct vector0<void_>
 # else
-# define FORWARD_ARGUMENT(Z, INDEX, _) std::forward<\
- BOOST_PP_CAT(OtherT,INDEX)>(BOOST_PP_CAT(other,INDEX))
+ template <BOOST_PP_ENUM_PARAMS(N, typename T)>
+# endif
+ struct BOOST_PP_CAT(vector, N)
+ : vector<BOOST_PP_ENUM_PARAMS(N, T)>
+ {
+ private:
+ typedef vector<BOOST_PP_ENUM_PARAMS(N, T)> base;
 
- template <BOOST_PP_ENUM_PARAMS(N, typename OtherT)>
- BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, OtherT,&& other))
- : base(BOOST_PP_ENUM(N, FORWARD_ARGUMENT, _))
- {}
+ public:
+ BOOST_PP_CAT(vector, N)()
+ {}
+
+# define VECTOR_CTOR(COMBINATION,_)\
+ BOOST_PP_CAT(vector, N)(BOOST_PP_CAT(vector, N) COMBINATION vec)\
+ : base(sequence_assign(\
+ BOOST_FUSION_FORWARD(BOOST_PP_CAT(vector, N) COMBINATION,vec)))\
+ {}
+
+ BOOST_FUSION_ALL_CV_REF_COMBINATIONS(VECTOR_CTOR,_)
+
+# undef VECTOR_CTOR
+
+ template<typename Arg>
+ BOOST_PP_CAT(vector, N)(BOOST_FUSION_R_ELSE_CLREF(Arg) arg)
+ : base(BOOST_FUSION_FORWARD(Arg,arg))
+ {}
+
+# if N > 1
+# ifdef BOOST_NO_RVALUE_REFERENCES
+ BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, const T, & a))
+ : base(BOOST_PP_ENUM_PARAMS(N, a))
+ {}
+# else
+# define FORWARD_ARGUMENT(Z, INDEX, _) std::forward<\
+ BOOST_PP_CAT(OtherT,INDEX)>(BOOST_PP_CAT(other,INDEX))
+
+ template <BOOST_PP_ENUM_PARAMS(N, typename OtherT)>
+ BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, OtherT,&& other))
+ : base(BOOST_PP_ENUM(N, FORWARD_ARGUMENT, _))
+ {}
 
-# undef FORWARD_ARGUMENT
+# undef FORWARD_ARGUMENT
+# endif
 # endif
-#endif
 
- template<typename Seq>
- BOOST_PP_CAT(vector, N)&
- operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
- {
- *static_cast<base*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
- return *this;
- }
-};
+ template<typename Seq>
+ BOOST_PP_CAT(vector, N)&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
+ {
+ *static_cast<base*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
+ return *this;
+ }
+ };
+}}
 
-#undef N
+ #undef N
+#endif
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -1,9 +1,7 @@
-/*=============================================================================
- Copyright (c) 2001-2006 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)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// 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_FUSION_CONTAINER_VECTOR_VECTOR10_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR10_HPP
@@ -11,58 +9,17 @@
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-#ifdef BOOST_NO_VARIADIC_TEMPLATES
-# include <boost/fusion/container/vector/vector_fwd.hpp>
-# include <boost/fusion/iterator/deref.hpp>
-# include <boost/fusion/iterator/next.hpp>
-# include <boost/fusion/support/sequence_base.hpp>
-# include <boost/fusion/support/ref.hpp>
-# include <boost/fusion/support/sequence_assign.hpp>
-
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/dec.hpp>
-# include <boost/preprocessor/repetition/enum.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/repetition/repeat_from_to.hpp>
-# include <boost/preprocessor/iteration/iterate.hpp>
-
-# include <boost/mpl/int.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/vector.hpp>
-# include <boost/mpl/at.hpp>
-
-# include <boost/type_traits/add_reference.hpp>
-# include <boost/type_traits/add_const.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/vector_iterator.hpp>
-# include <boost/fusion/container/vector/detail/begin_impl.hpp>
-# include <boost/fusion/container/vector/detail/end_impl.hpp>
-# include <boost/fusion/container/vector/detail/deref_impl.hpp>
-# include <boost/fusion/container/vector/detail/value_of_impl.hpp>
-# include <boost/fusion/container/vector/detail/next_impl.hpp>
-# include <boost/fusion/container/vector/detail/prior_impl.hpp>
-# include <boost/fusion/container/vector/detail/equal_to_impl.hpp>
-# include <boost/fusion/container/vector/detail/distance_impl.hpp>
-# include <boost/fusion/container/vector/detail/advance_impl.hpp>
-#else
-# include <boost/fusion/container/vector/vector.hpp>
-#endif
+# define BOOST_FUSION_FROM 0
+# define BOOST_FUSION_TO 10
 
-namespace boost { namespace fusion
-{
-#ifdef BOOST_NO_VARIADIC_TEMPLATES
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
-#else
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
-#endif
+# ifdef BOOST_NO_VARIADIC_TEMPLATES
+# include<boost/fusion/container/vector/detail/pp/vector_n.hpp>
+# else
+# include<boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
+# endif
 
-# define BOOST_PP_ITERATION_LIMITS (0, 10)
-# include BOOST_PP_ITERATE()
-}}
+# undef BOOST_FUSION_FROM
+# undef BOOST_FUSION_TO
 #else
 # include <boost/fusion/container/vector/vector.hpp>
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -1,9 +1,7 @@
-/*=============================================================================
- Copyright (c) 2001-2006 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)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// 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_FUSION_CONTAINER_VECTOR_VECTOR20_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR20_HPP
@@ -11,28 +9,17 @@
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-#ifdef BOOST_NO_VARIADIC_TEMPLATES
-
-#else
-# include <boost/fusion/container/vector/vector.hpp>
-#endif
-
-namespace boost { namespace fusion
-{
- struct vector_tag;
- struct fusion_sequence_tag;
- struct random_access_traversal_tag;
+# define BOOST_FUSION_FROM 11
+# define BOOST_FUSION_TO 20
 
-// expand vector11 to vector20
 # ifdef BOOST_NO_VARIADIC_TEMPLATES
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/pp/vector_n.hpp>
 # else
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
 # endif
-# define BOOST_PP_ITERATION_LIMITS (11, 20)
-# include BOOST_PP_ITERATE()
 
-}}
+# undef BOOST_FUSION_FROM
+# undef BOOST_FUSION_TO
 #else
 # include <boost/fusion/container/vector/vector.hpp>
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -1,9 +1,7 @@
-/*=============================================================================
- Copyright (c) 2001-2006 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)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// 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_FUSION_CONTAINER_VECTOR_VECTOR30_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR30_HPP
@@ -11,52 +9,17 @@
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-#ifndef BOOST_NO_VARIADIC_TEMPLATES
-# include <boost/fusion/container/vector/vector.hpp>
-#endif
-
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/ref.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/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>
-
-namespace boost { namespace fusion
-{
- struct vector_tag;
- struct fusion_sequence_tag;
- struct random_access_traversal_tag;
+# define BOOST_FUSION_FROM 21
+# define BOOST_FUSION_TO 30
 
-// expand vector21 to vector30
 # ifdef BOOST_NO_VARIADIC_TEMPLATES
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/pp/vector_n.hpp>
 # else
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
 # endif
-# define BOOST_PP_ITERATION_LIMITS (21, 30)
-# include BOOST_PP_ITERATE()
 
-}}
+# undef BOOST_FUSION_FROM
+# undef BOOST_FUSION_TO
 #else
 # include <boost/fusion/container/vector/vector.hpp>
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -1,9 +1,7 @@
-/*=============================================================================
- Copyright (c) 2001-2006 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)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// 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_FUSION_CONTAINER_VECTOR_VECTOR40_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR40_HPP
@@ -11,52 +9,17 @@
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-#ifndef BOOST_NO_VARIADIC_TEMPLATES
-# include <boost/fusion/container/vector/vector.hpp>
-#endif
-
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/ref.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/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>
-
-namespace boost { namespace fusion
-{
- struct vector_tag;
- struct fusion_sequence_tag;
- struct random_access_traversal_tag;
+# define BOOST_FUSION_FROM 31
+# define BOOST_FUSION_TO 40
 
-// expand vector31 to vector40
 # ifdef BOOST_NO_VARIADIC_TEMPLATES
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/pp/vector_n.hpp>
 # else
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
 # endif
-# define BOOST_PP_ITERATION_LIMITS (31, 40)
-# include BOOST_PP_ITERATE()
 
-}}
+# undef BOOST_FUSION_FROM
+# undef BOOST_FUSION_TO
 #else
 # include <boost/fusion/container/vector/vector.hpp>
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -1,9 +1,7 @@
-/*=============================================================================
- Copyright (c) 2001-2006 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)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// 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_FUSION_CONTAINER_VECTOR_VECTOR50_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR50_HPP
@@ -11,52 +9,17 @@
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-#ifndef BOOST_NO_VARIADIC_TEMPLATES
-# include <boost/fusion/container/vector/vector.hpp>
-#endif
-
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/ref.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/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>
-
-namespace boost { namespace fusion
-{
- struct vector_tag;
- struct fusion_sequence_tag;
- struct random_access_traversal_tag;
+# define BOOST_FUSION_FROM 41
+# define BOOST_FUSION_TO 50
 
-// expand vector41 to vector50
 # ifdef BOOST_NO_VARIADIC_TEMPLATES
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/pp/vector_n.hpp>
 # else
-# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
+# include<boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
 # endif
-# define BOOST_PP_ITERATION_LIMITS (41, 50)
-# include BOOST_PP_ITERATE()
 
-}}
+# undef BOOST_FUSION_FROM
+# undef BOOST_FUSION_TO
 #else
 # include <boost/fusion/container/vector/vector.hpp>
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/decltype_and_variadic_templates/invoke_impl_detail.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/decltype_and_variadic_templates/invoke_impl_detail.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/decltype_and_variadic_templates/invoke_impl_detail.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -11,7 +11,7 @@
 #include <boost/fusion/sequence/intrinsic/back.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/advance.hpp>
+#include <boost/fusion/iterator/advance_c.hpp>
 #include <boost/fusion/algorithm/transformation/pop_back.hpp>
 #include <boost/fusion/support/category_of.hpp>
 #include <boost/fusion/support/ref.hpp>

Added: sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -0,0 +1,11 @@
+// Copyright Christopher Schmidt 2009.
+// 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_FUSION_INCLUDE_ADVANCE_C_HPP
+#define BOOST_FUSION_INCLUDE_ADVANCE_C_HPP
+
+#include <boost/fusion/iterator/advance_c.hpp>
+
+#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -0,0 +1,11 @@
+// Copyright Christopher Schmidt 2009.
+// 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_FUSION_ITERATOR_ADVANCE_C_HPP
+#define BOOST_FUSION_ITERATOR_ADVANCE_C_HPP
+
+#include <boost/fusion/iterator/advance.hpp>
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -58,9 +58,9 @@
 #undef SINGLE_VIEW_CTOR
 
         template<typename SeqAssign>
- single_view(BOOST_FUSION_R_ELSE_CLREF(SeqAssign) seq,
+ single_view(BOOST_FUSION_R_ELSE_LREF(SeqAssign) seq,
             typename enable_if<
- is_sequence_assign<BOOST_FUSION_R_ELSE_CLREF(SeqAssign)>
+ is_sequence_assign<BOOST_FUSION_R_ELSE_LREF(SeqAssign)>
>::type* =NULL)
           : val(fusion::front(seq.get()))
         {}
@@ -88,10 +88,10 @@
         template<typename SeqAssign>
         typename
             enable_if<
- is_sequence_assign<BOOST_FUSION_R_ELSE_CLREF(SeqAssign)>
+ is_sequence_assign<BOOST_FUSION_R_ELSE_LREF(SeqAssign)>
               , single_view&
>::type
- operator=(BOOST_FUSION_R_ELSE_CLREF(SeqAssign) seq)
+ operator=(BOOST_FUSION_R_ELSE_LREF(SeqAssign) seq)
         {
             val=fusion::front(seq.get());
             return *this;

Modified: sandbox/SOC/2009/fusion/build.bat
==============================================================================
--- sandbox/SOC/2009/fusion/build.bat (original)
+++ sandbox/SOC/2009/fusion/build.bat 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -5,26 +5,21 @@
 rem http://www.boost.org/LICENSE_1_0.txt)
 
 rem (re-)set environment variables
-rem bjam does not like backslahes!
 set BOOST_ROOT=d:/projekte/libs/boost
 set BOOST_INCLUDES_PATH=%BOOST_ROOT%/include/boost-1_40
 
 rem call toolset specific procedure
-if "%1" == "conceptgcc" (
- call :conceptgcc
+if "%1" == "gcc" (
+ call :gcc
 ) else (
- if "%1" == "gcc" (
- call :gcc
+ if "%1" == "msvc" (
+ call :msvc
     ) else (
- if "%1" == "msvc" (
- call :msvc
+ if "%1" == "" (
+ call :gcc
         ) else (
- if "%1" == "" (
- call :gcc
- ) else (
- echo Unknown toolset '%1'
- goto :eof
- )
+ echo Unknown toolset '%1'
+ goto :eof
         )
     )
 )
@@ -33,14 +28,6 @@
 %BOOST_ROOT%\bjam -sHOME="z:\projekte\cl_link_frontend\util\boost" --without-python --toolset=%TOOLSET% %2 %3 %4 %5 %6 %7 %8 %9
 goto :eof
 
-:conceptgcc
-rem ConceptGCC needs a cygwin path
-set BOOST_INCLUDES_PATH=/cygdrive/d/projekte/libs/boost/include/boost-1_40
-
-set PATH=C:\cygwin\opt\conceptgcc-4.3.0-alpha-7\bin;C:\cygwin\bin;%PATH%
-set TOOLSET=gcc-conceptgcc
-goto :eof
-
 :gcc
 set PATH=C:\MinGW\bin;%PATH%
 set TOOLSET=gcc

Modified: sandbox/SOC/2009/fusion/libs/fusion/doc/iterator.qbk
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/doc/iterator.qbk (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/doc/iterator.qbk 2009-07-20 18:48:44 EDT (Mon, 20 Jul 2009)
@@ -426,8 +426,8 @@
 [*Semantics]: Returns an iterator to the element `N` positions from `i`. If `i` is a __bidirectional_iterator__ then `N` may be negative.
 
 [heading Header]
- #include <boost/fusion/iterator/advance.hpp>
- #include <boost/fusion/include/advance.hpp>
+ #include <boost/fusion/iterator/advance_c.hpp>
+ #include <boost/fusion/include/advance_c.hpp>
 
 [heading Example]
     typedef __vector__<int,int,int> vec;
@@ -863,8 +863,8 @@
 [*Semantics]: Returns an iterator a distance `N` from `I`. If `I` is a __bidirectional_iterator__ then `N` may be negative. Equivalent to `__result_of_advance__<I, boost::mpl::int_<N> >::type`.
 
 [heading Header]
- #include <boost/fusion/iterator/advance.hpp>
- #include <boost/fusion/include/advance.hpp>
+ #include <boost/fusion/iterator/advance_c.hpp>
+ #include <boost/fusion/include/advance_c.hpp>
 
 [heading Example]
     typedef __vector__<int,double,char> vec;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk