Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r55209 - in sandbox/SOC/2009/fusion: . boost/fusion/algorithm/iteration/detail boost/fusion/algorithm/transformation boost/fusion/algorithm/transformation/detail/pp boost/fusion/algorithm/transformation/detail/variadic_templates boost/fusion/container/detail boost/fusion/container/detail/variadic_templates boost/fusion/container/generation/detail/pp boost/fusion/container/generation/detail/variadic_templates boost/fusion/container/list boost/fusion/container/map boost/fusion/container/set boost/fusion/container/vector/detail/pp boost/fusion/container/vector/detail/variadic_templates boost/fusion/functional/adapter/detail boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates boost/fusion/support boost/fusion/support/detail boost/fusion/tuple boost/fusion/view/detail boost/fusion/view/filter_view boost/fusion/view/iterator_range boost/fusion/view/joint_view boost/fusion/view/reverse_view boost/fusion/view/single_view/detail boost/fusion/view/transform_view boost/fusion/view/transform_view/detail boost/fusion/view/zip_view boost/fusion/view/zip_view/detail libs/fusion/test libs/fusion/test/sequence
From: mr.chr.schmidt_at_[hidden]
Date: 2009-07-30 14:43:34


Author: cschmidt
Date: 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
New Revision: 55209
URL: http://svn.boost.org/trac/boost/changeset/55209

Log:
msvc bugfixes
Added:
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp (contents, props changed)
Removed:
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp
Text files modified:
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp | 32 +++++++++-----
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp | 88 ++++++++++++++++-----------------------
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp | 4 -
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp | 7 +-
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp | 16 ++++--
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp | 9 +--
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp | 20 ++++----
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp | 14 +++---
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp | 12 ++++-
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp | 18 ++++----
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp | 23 +++++----
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_function_object.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_procedure.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused_typed.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp | 18 ++++----
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp | 4 +
   sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp | 50 +++++++++++-----------
   sandbox/SOC/2009/fusion/boost/fusion/support/result_of.hpp | 39 ++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/support/template.hpp | 10 +--
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp | 8 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp | 23 +++++++---
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp | 6 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp | 14 +++---
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp | 8 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp | 15 ++++--
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp | 8 +-
   sandbox/SOC/2009/fusion/build.bat | 2
   sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile | 6 +-
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp | 2
   sandbox/SOC/2009/fusion/project-root.jam | 3
   46 files changed, 263 insertions(+), 242 deletions(-)

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -23,6 +23,7 @@
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/type_traits/add_const.hpp>
 
 namespace boost { namespace fusion { namespace detail
 {
@@ -152,16 +153,29 @@
 #endif
     };
 
+ template <typename It, typename State, typename FRef>
+ struct fold_apply_r_else_clref
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ : fold_apply<
+ It
+ , typename detail::add_lref<typename add_const<State>::type>::type
+ , FRef
+ >
+#else
+ : fold_apply<It,State&&,FRef>
+#endif
+ {};
+
     template<typename It0, typename StateRef, typename FRef, int N>
     struct result_of_unrolled_fold
     {
         typedef typename fold_apply<It0, StateRef, FRef>::type rest1;
         typedef typename result_of::next<It0>::type it1;
- typedef typename fold_apply<it1, BOOST_FUSION_R_ELSE_CLREF(rest1), FRef>::type rest2;
+ typedef typename fold_apply_r_else_clref<it1, rest1, FRef>::type rest2;
         typedef typename result_of::next<it1>::type it2;
- typedef typename fold_apply<it2, BOOST_FUSION_R_ELSE_CLREF(rest2), FRef>::type rest3;
+ typedef typename fold_apply_r_else_clref<it2, rest2, FRef>::type rest3;
         typedef typename result_of::next<it2>::type it3;
- typedef typename fold_apply<it3, BOOST_FUSION_R_ELSE_CLREF(rest3), FRef>::type rest4;
+ typedef typename fold_apply_r_else_clref<it3, rest3, FRef>::type rest4;
         typedef typename result_of::next<it3>::type it4;
 
         typedef typename
@@ -183,12 +197,10 @@
     {
         typedef typename fold_apply<It0, StateRef, FRef>::type rest1;
         typedef typename result_of::next<It0>::type it1;
- typedef typename fold_apply<it1, BOOST_FUSION_R_ELSE_CLREF(rest1), FRef>::type rest2;
+ typedef typename fold_apply_r_else_clref<it1, rest1, FRef>::type rest2;
         typedef typename result_of::next<it1>::type it2;
 
- typedef typename
- fold_apply<it2, BOOST_FUSION_R_ELSE_CLREF(rest2), FRef>::type
- type;
+ typedef typename fold_apply_r_else_clref<it2, rest2, FRef>::type type;
     };
 
     template<typename It0, typename StateRef, typename FRef>
@@ -197,16 +209,14 @@
         typedef typename fold_apply<It0, StateRef, FRef>::type rest;
         typedef typename result_of::next<It0>::type it1;
 
- typedef typename
- fold_apply<it1, BOOST_FUSION_R_ELSE_CLREF(rest), FRef>::type
- type;
+ typedef typename fold_apply_r_else_clref<it1, rest, FRef>::type type;
     };
 
     template<typename It0, typename StateRef, typename FRef>
     struct result_of_unrolled_fold<It0, StateRef, FRef, 1>
     {
         typedef typename
- fold_apply<It0, BOOST_FUSION_R_ELSE_CLREF(StateRef), FRef>::type
+ fold_apply_r_else_clref<It0, StateRef, FRef>::type
         type;
     };
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -1,81 +1,67 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2006 Dan Marsden
-
- 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_PP_IS_ITERATING
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_PP_ZIP_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_PP_ZIP_HPP
 
+#include <boost/fusion/container/generation/vector_tie.hpp>
 #include <boost/fusion/view/zip_view.hpp>
-#include <boost/fusion/adapted/mpl.hpp>
-#include <boost/fusion/container/vector.hpp>
-#include <boost/fusion/container/vector/convert.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_from_to.hpp>
-#include <boost/preprocessor/arithmetic/inc.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/placeholders.hpp>
-
-namespace boost { namespace fusion {
-
- struct void_;
+#include <boost/fusion/support/ref.hpp>
+#include <boost/fusion/support/template.hpp>
 
+namespace boost { namespace fusion
+{
     namespace result_of
     {
- template<BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(BOOST_PP_INC(FUSION_MAX_ZIP_SEQUENCES), typename T, fusion::void_)>
+ VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_ZIP_SEQUENCES)
         struct zip;
     }
 
-#define BOOST_PP_FILENAME_1 \
- <boost/fusion/algorithm/transformation/detail/pp/zip.hpp>
+#define BOOST_PP_FILENAME_1 <boost/fusion/algorithm/transformation/detail/pp/zip.hpp>
 #define BOOST_PP_ITERATION_LIMITS (2, FUSION_MAX_ZIP_SEQUENCES)
 #include BOOST_PP_ITERATE()
 
 }}
 
 #endif
-
 #else
 
-#define ZIP_ITERATION BOOST_PP_ITERATION()
+#define N BOOST_PP_ITERATION()
 
     namespace result_of
     {
- template< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, typename T) >
-#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
- #define TEXT(z, n, text) , text
- struct zip< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) BOOST_PP_REPEAT_FROM_TO(BOOST_PP_DEC(ZIP_ITERATION), FUSION_MAX_ZIP_SEQUENCES, TEXT, void_) >
- #undef TEXT
-#else
- struct zip< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) >
-#endif
+ VARIADIC_TEMPLATE(N)
+ struct zip
+ EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION(FUSION_MAX_ZIP_SEQUENCES,N)
         {
- typedef mpl::vector< BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, T) > sequences;
- typedef typename mpl::transform<sequences, detail::add_lref<mpl::_> >::type ref_params;
- typedef zip_view<typename result_of::as_vector<ref_params>::type> type;
+ typedef
+ zip_view<
+ typename result_of::vector_tie<
+ EXPAND_TEMPLATE_ARGUMENTS(N)
+ >::type
+ >
+ type;
         };
     }
 
-#define FUSION_REF_PARAM(z, n, data) const T ## n&
-
- template<BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, typename T)>
- inline typename result_of::zip<BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, const T)>::type
- zip(BOOST_PP_ENUM_BINARY_PARAMS(ZIP_ITERATION, T, const& t))
+ VARIADIC_TEMPLATE_A(N)
+ inline
+#if N
+ typename
+#endif
+ result_of::zip<EXPAND_TEMPLATE_ARGUMENTS_A_R_ELSE_CLREF(N)>::type
+ zip(EXPAND_TEMPLATE_ARGUMENTS_PARAMETERS_A_R_ELSE_CLREF(N))
     {
- fusion::vector<BOOST_PP_ENUM(ZIP_ITERATION, FUSION_REF_PARAM, _)> seqs(
- BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, t));
- return typename result_of::zip<BOOST_PP_ENUM_PARAMS(ZIP_ITERATION, const T)>::type(
- seqs);
+ return
+#if N
+ typename
+#endif
+ result_of::zip<EXPAND_TEMPLATE_ARGUMENTS_A_R_ELSE_CLREF(N)>::type(
+ fusion::vector_tie(EXPAND_PARAMETERS_A(N)));
     }
 
-#undef FUSION_REF_PARAM
-#undef ZIP_ITERATION
-
+#undef N
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -19,9 +19,7 @@
         struct zip
         {
             typedef
- zip_view<
- vector<typename detail::add_lref<Seqs>::type...>
- >
+ zip_view<typename result_of::vector_tie<Seqs...>::type>
             type;
         };
     }

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -80,12 +80,12 @@
             typedef
                 iterator_range<
                     seq_first_type
- , First
+ , typename detail::identity<First>::type
>
             left_type;
             typedef
                 iterator_range<
- Last
+ typename detail::identity<Last>::type
                   , seq_last_type
>
             right_type;

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -27,12 +27,12 @@
             typedef
                 iterator_range<
                     typename result_of::begin<Seq>::type
- , typename detail::add_lref<Pos>::type
+ , typename detail::identity<Pos>::type
>
             left_type;
             typedef
                 iterator_range<
- typename detail::add_lref<Pos>::type
+ typename detail::identity<Pos>::type
                   , typename result_of::end<Seq>::type
>
             right_type;

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -9,6 +9,8 @@
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_ZIP_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_ZIP_HPP
 
+#include <boost/config.hpp>
+
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
 # ifndef FUSION_MAX_ZIP_SEQUENCES
 # define FUSION_MAX_ZIP_SEQUENCES 10

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -44,9 +44,8 @@
                 type;
 #else
                 typedef typename
- detail::detail::BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)<
- SeqRef
- >
+ detail::BOOST_PP_CAT(
+ BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)<SeqRef>
                 gen;
                 typedef typename gen::apply::type type;
 #endif
@@ -71,7 +70,7 @@
>::template apply<typename detail::add_lref<Seq>::type>
             gen;
 
- typedef typename gen::apply::type type;
+ typedef typename gen::type type;
         };
     }
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -14,7 +14,7 @@
 namespace boost { namespace fusion { namespace detail
 {
     template<typename SeqRef>
- struct BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)
+ struct BOOST_PP_CAT(BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)
     {
         struct apply
         {

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -6,6 +6,7 @@
 #ifndef BOOST_PP_IS_ITERATING
 
 #include <boost/fusion/support/detail/as_fusion_element.hpp>
+#include <boost/fusion/support/template.hpp>
 
 #include <boost/preprocessor/iterate.hpp>
 #include <boost/preprocessor/cat.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -6,6 +6,7 @@
 #ifndef BOOST_PP_IS_ITERATING
 
 #include <boost/fusion/support/detail/as_fusion_element.hpp>
+#include <boost/fusion/support/template.hpp>
 
 #include <boost/preprocessor/iterate.hpp>
 #include <boost/preprocessor/cat.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -21,6 +21,7 @@
 #include <boost/mpl/lambda.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/unpack_args.hpp>
+#include <boost/mpl/vector.hpp>
 #include <boost/mpl/zip_view.hpp>
 #include <boost/mpl/transform_view.hpp>
 
@@ -35,15 +36,18 @@
                 variadic_arguments_to_vector<KeysTypes...>::type
             args;
             typedef typename
- mpl::iterator_range<typename mpl::begin<args>::type
+ mpl::iterator_range<
+ typename mpl::begin<args>::type
                   , typename mpl::advance<typename mpl::begin<args>::type
- , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
+ , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
>
             keys;
             typedef typename
                 mpl::iterator_range<
- typename mpl::advance<typename mpl::begin<args>::type,
- mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
+ typename mpl::advance<
+ typename mpl::begin<args>::type
+ , mpl::divides<mpl::size<args>, mpl::int_<2> >
+ >::type
                   , typename mpl::end<args>::type
>
             types;
@@ -51,8 +55,8 @@
             typedef
                 mpl::transform_view<
                     mpl::zip_view<mpl::vector<keys,types> >
- , mpl::unpack_args<pair<mpl::_1
- , detail::as_fusion_element<mpl::_2> >
+ , mpl::unpack_args<
+ pair<mpl::_1, detail::as_fusion_element<mpl::_2> >
>
>
             map_args;

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -12,7 +12,7 @@
     namespace result_of
     {
         template <typename... Types>
- struct BOOST_PP_CAT(make,BOOST_FUSION_SEQ_NAME)
+ struct BOOST_PP_CAT(make_,BOOST_FUSION_SEQ_NAME)
         {
             typedef
                 BOOST_FUSION_SEQ_NAME<
@@ -24,17 +24,16 @@
 
     template <typename... Types>
     inline typename
- result_of::BOOST_PP_CAT(make,BOOST_FUSION_SEQ_NAME)<
+ result_of::BOOST_PP_CAT(make_,BOOST_FUSION_SEQ_NAME)<
             BOOST_FUSION_R_ELSE_CLREF(Types)...
>::type
- BOOST_PP_CAT(make,BOOST_FUSION_SEQ_NAME)(
+ BOOST_PP_CAT(make_,BOOST_FUSION_SEQ_NAME)(
         BOOST_FUSION_R_ELSE_CLREF(Types)... types)
     {
         return typename
- result_of::BOOST_PP_CAT(make,BOOST_FUSION_SEQ_NAME)<
+ result_of::BOOST_PP_CAT(make_,BOOST_FUSION_SEQ_NAME)<
                 BOOST_FUSION_R_ELSE_CLREF(Types)...
>::type(BOOST_FUSION_FORWARD(Types, types)...);
     }
-
 }}
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -21,6 +21,7 @@
 #include <boost/mpl/lambda.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/unpack_args.hpp>
+#include <boost/mpl/vector.hpp>
 #include <boost/mpl/zip_view.hpp>
 #include <boost/mpl/transform_view.hpp>
 
@@ -35,15 +36,18 @@
                 variadic_arguments_to_vector<KeysTypes...>::type
             args;
             typedef typename
- mpl::iterator_range<typename mpl::begin<args>::type
+ mpl::iterator_range<
+ typename mpl::begin<args>::type
                   , typename mpl::advance<typename mpl::begin<args>::type
- , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
+ , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
>
             keys;
             typedef typename
                 mpl::iterator_range<
- typename mpl::advance<typename mpl::begin<args>::type,
- mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
+ typename mpl::advance<
+ typename mpl::begin<args>::type
+ , mpl::divides<mpl::size<args>, mpl::int_<2> >
+ >::type
                   , typename mpl::end<args>::type
>
             types;
@@ -52,9 +56,7 @@
                 mpl::transform_view<
                     mpl::zip_view<mpl::vector<keys,types> >
                   , mpl::unpack_args<
- pair<mpl::_1
- , detail::as_fusion_element_ref<mpl::_2>
- >
+ pair<mpl::_1, detail::as_fusion_element_ref<mpl::_2> >
>
>
             map_args;
@@ -77,10 +79,8 @@
         typedef typename
             result_of::map_tie<Keys...,BOOST_FUSION_R_ELSE_CLREF(Types)...>::type
         type;
- return type(pair<Keys,BOOST_FUSION_R_ELSE_CLREF(Types)>
- (BOOST_FUSION_FORWARD(Types, types))...);
+ return type(BOOST_FUSION_FORWARD(Types, types)...);
     }
-
 }}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -30,10 +30,9 @@
     BOOST_FUSION_FUNCTION_NAME(BOOST_FUSION_R_ELSE_CLREF(Types)... types)
     {
         return typename
- BOOST_FUSION_FUNCTION_NAME<
+ result_of::BOOST_FUSION_FUNCTION_NAME<
                 BOOST_FUSION_R_ELSE_CLREF(Types)...
>::type(BOOST_FUSION_FORWARD(Types, types)...);
     }
-
 }}
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -63,8 +63,8 @@
 # undef BOOST_FUSION_SEQ_NAME
 #else
         template <typename... OtherArguments>
- list(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... other_arguments)
- : data(BOOST_FUSION_FORWARD(OtherArguments,other_arguments)...)
+ list(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... arguments)
+ : data(BOOST_FUSION_FORWARD(OtherArguments,arguments)...)
         {}
 #endif
 

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-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -74,11 +74,10 @@
         template <typename Key>
         struct meta_at_impl
         {
- template<class Iterator>struct get_type
+ template<class It>
+ struct get_type
             {
- typedef typename
- mpl::deref<Iterator>::type::second_type
- type;
+ typedef typename mpl::deref<It>::type::second_type type;
             };
 
             typedef typename
@@ -90,7 +89,8 @@
 
             typedef typename
                 mpl::eval_if<
- is_same<iterator
+ is_same<
+ iterator
                       , typename mpl::end<typename storage_type::types>::type
>
                   , mpl::identity<void_>
@@ -153,8 +153,8 @@
 # undef BOOST_FUSION_SEQ_NAME
 #else
         template <typename... OtherArguments>
- map(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... other_arguments)
- : data(BOOST_FUSION_FORWARD(OtherArguments,other_arguments)...)
+ map(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... arguments)
+ : data(BOOST_FUSION_FORWARD(OtherArguments,arguments)...)
         {}
 #endif
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -123,8 +123,8 @@
 # undef BOOST_FUSION_SEQ_NAME
 #else
         template <typename... OtherArguments>
- set(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... other_arguments)
- : data(BOOST_FUSION_FORWARD(OtherArguments,other_arguments)...)
+ set(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... arguments)
+ : data(BOOST_FUSION_FORWARD(OtherArguments,arguments)...)
         {}
 #endif
 

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-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -29,6 +29,9 @@
 
 # include <boost/type_traits/add_const.hpp>
 # include <boost/utility/enable_if.hpp>
+# ifdef BOOST_NO_RVALUE_REFERENCES
+# include <boost/call_traits.hpp>
+# endif
 
 # include <boost/fusion/container/vector/detail/at_impl.hpp>
 # include <boost/fusion/container/vector/detail/value_at_impl.hpp>
@@ -126,14 +129,17 @@
         explicit
 # endif
         BOOST_PP_CAT(vector, N)(
+#ifdef BOOST_NO_RVALUE_REFERENCES
             BOOST_PP_ENUM_BINARY_PARAMS(
                     N,
-#ifdef BOOST_NO_RVALUE_REFERENCES
- T,
+ typename call_traits<T,
+ >::param_type _)
 #else
+ BOOST_PP_ENUM_BINARY_PARAMS(
+ N,
                     A,
-#endif
                     BOOST_FUSION_R_ELSE_CLREF(BOOST_PP_EMPTY()) _)
+#endif
             )
           : BOOST_PP_ENUM(N, BOOST_FUSION_MEMBER_INIT, _)
         {}

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -95,11 +95,11 @@
 
             template<typename OtherHead,typename... OtherElements>
             vector_impl(assign_directly,
- BOOST_FUSION_R_ELSE_CLREF(OtherHead) other_head,
- BOOST_FUSION_R_ELSE_CLREF(OtherElements)... other_elements)
+ BOOST_FUSION_R_ELSE_CLREF(OtherHead) head,
+ BOOST_FUSION_R_ELSE_CLREF(OtherElements)... elements)
                 : base(assign_directly(),
- BOOST_FUSION_FORWARD(OtherElements,other_elements)...)
- , _element(BOOST_FUSION_FORWARD(OtherHead,other_head))
+ BOOST_FUSION_FORWARD(OtherElements,elements)...)
+ , _element(BOOST_FUSION_FORWARD(OtherHead,head))
             {}
 
             typename detail::add_lref<Head>::type
@@ -146,17 +146,17 @@
 
 #undef VECTOR_CTOR
 
- template<typename... OtherElements>
+ template<typename... OtherArguments>
         explicit
- vector(BOOST_FUSION_R_ELSE_CLREF(OtherElements)... other_elements)
+ vector(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... arguments)
           : base(detail::assign_directly(),
- BOOST_FUSION_FORWARD(OtherElements,other_elements)...)
+ BOOST_FUSION_FORWARD(OtherArguments,arguments)...)
         {}
 
 #define VECTOR_ASSIGN_CTOR(COMBINATION,_)\
         template<typename SeqRef>\
- vector(support::sequence_assgin_type<SeqRef> COMBINATION seq_assign)\
- : base(detail::assign_by_deref(),seq_assign.get())
+ vector(support::sequence_assign_type<SeqRef> COMBINATION seq_assign)\
+ : base(detail::assign_by_deref(),fusion::begin(seq_assign.get()))\
         {}
 
         BOOST_FUSION_ALL_CV_REF_COMBINATIONS(VECTOR_ASSIGN_CTOR,_);

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-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -7,6 +7,9 @@
 # include <boost/fusion/container/vector/vector.hpp>
 
 # include <boost/preprocessor/iteration/iterate.hpp>
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/repetition/enum.hpp>
+# include <boost/preprocessor/repetition/enum_binary_params.hpp>
 
 # 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)
@@ -29,8 +32,8 @@
     struct vector0<void_>
 # else
     template <BOOST_PP_ENUM_PARAMS(N, typename T)>
-# endif
     struct BOOST_PP_CAT(vector, N)
+# endif
       : vector<BOOST_PP_ENUM_PARAMS(N, T)>
     {
     private:
@@ -56,21 +59,21 @@
         {}
 
 # if N > 1
-# ifdef BOOST_NO_RVALUE_REFERENCES
- BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, const T, & a))
+# ifdef BOOST_NO_RVALUE_REFERENCES
+ BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& 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))
+# else
+# define FORWARD_ARGUMENT(Z, N, __) std::forward<\
+ BOOST_PP_CAT(A,N)>(BOOST_PP_CAT(_,N))
 
- template <BOOST_PP_ENUM_PARAMS(N, typename OtherT)>
- BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, OtherT,&& other))
+ template <BOOST_PP_ENUM_PARAMS(N, typename A)>
+ BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, A,&& _))
           : base(BOOST_PP_ENUM(N, FORWARD_ARGUMENT, _))
         {}
 
-# undef FORWARD_ARGUMENT
-# endif
+# undef FORWARD_ARGUMENT
+# endif
 # endif
 
         template<typename Seq>

Deleted: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
+++ (empty file)
@@ -1,40 +0,0 @@
-/*=============================================================================
- Copyright (c) 2006-2007 Tobias Schwinger
-
- Use modification and distribution are subject to 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_FUNCTIONAL_ADAPTER_DETAIL_ACCESS_HPP
-#define BOOST_FUSION_FUNCTIONAL_ADAPTER_DETAIL_ACCESS_HPP
-
-namespace boost { namespace fusion { namespace detail
-{
- // const reference deduction for function templates that accept T const&
- /*template <typename T> struct cref { typedef T const& type; };
- template <typename T> struct cref<T&> { typedef T const& type; };
- template <typename T> struct cref<T const> { typedef T const& type; };
-
- // mutable reference deduction for function templates that accept T &
- template <typename T> struct mref { typedef T & type; };
- template <typename T> struct mref<T&> { typedef T & type; };
-
- // generic reference deduction for function templates that are overloaded
- // to accept both T const& and T &
- template <typename T> struct gref { typedef T const& type; };
- template <typename T> struct gref<T&> { typedef T & type; };
- template <typename T> struct gref<T const> { typedef T const& type; };
-
- // appropriately qualified target function in const context
- template <typename T> struct qf_c { typedef T const type; };
- template <typename T> struct qf_c<T const> { typedef T const type; };
- template <typename T> struct qf_c<T &> { typedef T type; };
-
- // appropriately qualified target function in non-const context
- template <typename T> struct qf { typedef T type; };
- template <typename T> struct qf<T const> { typedef T const type; };
- template <typename T> struct qf<T &> { typedef T type; };*/
-}}}
-
-#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -0,0 +1,40 @@
+/*=============================================================================
+ Copyright (c) 2006-2007 Tobias Schwinger
+
+ Use modification and distribution are subject to 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_FUNCTIONAL_ADAPTER_DETAIL_NO_DECLTYPE_OR_VARIADIC_TEMPLATES_ACCESS_HPP
+#define BOOST_FUSION_FUNCTIONAL_ADAPTER_DETAIL_NO_DECLTYPE_OR_VARIADIC_TEMPLATES_ACCESS_HPP
+
+namespace boost { namespace fusion { namespace detail
+{
+ // const reference deduction for function templates that accept T const&
+ /*template <typename T> struct cref { typedef T const& type; };
+ template <typename T> struct cref<T&> { typedef T const& type; };
+ template <typename T> struct cref<T const> { typedef T const& type; };
+
+ // mutable reference deduction for function templates that accept T &
+ template <typename T> struct mref { typedef T & type; };
+ template <typename T> struct mref<T&> { typedef T & type; };
+
+ // generic reference deduction for function templates that are overloaded
+ // to accept both T const& and T &
+ template <typename T> struct gref { typedef T const& type; };
+ template <typename T> struct gref<T&> { typedef T & type; };
+ template <typename T> struct gref<T const> { typedef T const& type; };
+
+ // appropriately qualified target function in const context
+ template <typename T> struct qf_c { typedef T const type; };
+ template <typename T> struct qf_c<T const> { typedef T const type; };
+ template <typename T> struct qf_c<T &> { typedef T type; };
+
+ // appropriately qualified target function in non-const context
+ template <typename T> struct qf { typedef T type; };
+ template <typename T> struct qf<T const> { typedef T const type; };
+ template <typename T> struct qf<T &> { typedef T type; };*/
+}}}
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -11,7 +11,7 @@
 
 #include <boost/type_traits/add_reference.hpp>
 
-#include <boost/fusion/functional/adapter/detail/access.hpp>
+#include <boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp>
 #include <boost/fusion/functional/invocation/invoke.hpp>
 
 namespace boost { namespace fusion

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_function_object.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_function_object.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -11,7 +11,7 @@
 
 #include <boost/type_traits/add_reference.hpp>
 
-#include <boost/fusion/functional/adapter/detail/access.hpp>
+#include <boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp>
 #include <boost/fusion/functional/invocation/invoke_function_object.hpp>
 
 namespace boost { namespace fusion

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_procedure.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/fused_procedure.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -11,7 +11,7 @@
 
 #include <boost/type_traits/add_reference.hpp>
 
-#include <boost/fusion/functional/adapter/detail/access.hpp>
+#include <boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp>
 #include <boost/fusion/functional/invocation/invoke_procedure.hpp>
 
 namespace boost { namespace fusion

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -20,7 +20,7 @@
 #include <boost/fusion/container/vector/vector.hpp>
 
 #include <boost/fusion/functional/adapter/limits.hpp>
-#include <boost/fusion/functional/adapter/detail/access.hpp>
+#include <boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp>
 
 namespace boost { namespace fusion
 {

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused_typed.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused_typed.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/unfused_typed.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -19,14 +19,13 @@
 
 #include <boost/utility/result_of.hpp>
 
-#include <boost/fusion/support/detail/access.hpp>
 #include <boost/fusion/sequence/intrinsic/value_at.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
 #include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/container/vector/convert.hpp>
 
 #include <boost/fusion/functional/adapter/limits.hpp>
-#include <boost/fusion/functional/adapter/detail/access.hpp>
+#include <boost/fusion/functional/adapter/detail/no_decltype_or_variadic_templates/access.hpp>
 
 
 namespace boost { namespace fusion

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -13,10 +13,8 @@
 #include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/view/transform_view.hpp>
 
-namespace boost { namespace fusion { namespace traits
+namespace boost { namespace fusion
 {
- template <class Sequence> struct deduce_sequence;
-
     namespace detail
     {
         struct deducer
@@ -31,11 +29,13 @@
         };
     }
 
- template <class Seq>
- struct deduce_sequence
- : result_of::as_vector<fusion::transform_view<Seq, detail::deducer> >
- {};
-
-}}}
+ namespace traits
+ {
+ template <class Seq>
+ struct deduce_sequence
+ : result_of::as_vector<fusion::transform_view<Seq, detail::deducer> >
+ {};
+ }
+}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -44,6 +44,8 @@
         typedef T& type;\
     };
 
+ CV_REF_SPECIALIZATION(volatile&,_)
+ CV_REF_SPECIALIZATION(const volatile&,_)
     BOOST_FUSION_ALL_CV_REF_COMBINATIONS(CV_REF_SPECIALIZATION,_)
 
 #undef CV_REF_SPECIALIZATION

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -12,6 +12,8 @@
 #include <boost/fusion/support/ref.hpp>
 #include <boost/fusion/support/detail/as_fusion_element.hpp>
 
+#include <boost/call_traits.hpp>
+
 namespace boost { namespace fusion
 {
     // A half runtime pair where the first type does not have data
@@ -36,7 +38,7 @@
 
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 # ifdef BOOST_NO_RVALUE_REFERENCES
- pair(Second const& second)
+ pair(typename call_traits<Second>::param_type second)
           : second(second)
         {}
 # else

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -26,6 +26,7 @@
 #include <boost/type_traits/is_const.hpp>
 #include <boost/type_traits/is_volatile.hpp>
 #include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/add_reference.hpp>
 #include <boost/type_traits/add_const.hpp>
 #include <boost/type_traits/add_volatile.hpp>
 #include <boost/type_traits/remove_const.hpp>
@@ -44,9 +45,10 @@
 
 # define BOOST_FUSION_ALL_CV_REF_COMBINATIONS(MACRO,ARG)\
         MACRO(&,ARG)\
- MACRO(const&,ARG)\
- MACRO(volatile&,ARG)\
- MACRO(const volatile&,ARG)
+ MACRO(const&,ARG)
+
+ //MACRO(volatile&,ARG)\
+ //MACRO(const volatile&,ARG)
 #else
 # include <utility>
 
@@ -64,12 +66,13 @@
 # define BOOST_FUSION_ALL_CV_REF_COMBINATIONS(MACRO,ARG)\
         MACRO(&,ARG)\
         MACRO(const&,ARG)\
- MACRO(volatile&,ARG)\
- MACRO(const volatile&,ARG)\
         MACRO(&&,ARG)\
- MACRO(const&&,ARG)\
- MACRO(volatile&&,ARG)\
- MACRO(const volatile&&,ARG)
+ MACRO(const&&,ARG)
+
+ //MACRO(volatile&,ARG)\
+ //MACRO(const volatile&,ARG)\
+ //MACRO(volatile&&,ARG)\
+ //MACRO(const volatile&&,ARG)
 #endif
 #define BOOST_FUSION_ALL_CV_REF_NON_REF_COMBINATIONS(MACRO,ARG)\
     BOOST_FUSION_ALL_CV_REF_COMBINATIONS(MACRO,ARG)\
@@ -80,6 +83,7 @@
 
 namespace boost { namespace fusion { namespace detail
 {
+ //cschmidt: workaround until boost::is_reference supports rvalues
     template<typename T>
     struct is_lrref
       : mpl::false_
@@ -112,6 +116,7 @@
     };
 #endif
 
+ //cschmidt: workaround until boost::is_reference supports rvalues
     template<typename T>
     struct remove_reference
     {
@@ -134,15 +139,8 @@
 
     template <typename T>
     struct add_lref
- {
- typedef T& type;
- };
-
- template <typename T>
- struct add_lref<T&>
- {
- typedef T& type;
- };
+ : add_reference<T>
+ {};
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
     template <typename T>
@@ -158,7 +156,7 @@
         typedef typename remove_const<
             typename remove_cv<
                 typename remove_reference<T>::type
- >::type
+ >::type
>::type type;
     };
 
@@ -174,21 +172,23 @@
         typedef typename remove_reference<TestType>::type test_type;
 
         typedef typename
- mpl::if_<is_const<test_type>
- , typename add_const<Type>::type
- , Type
+ mpl::if_<
+ is_const<test_type>
+ , typename add_const<Type>::type
+ , Type
>::type
         const_type;
 
         typedef typename
- mpl::if_<is_volatile<test_type>
- , typename add_volatile<const_type>::type
- , const_type
+ mpl::if_<
+ is_volatile<test_type>
+ , typename add_volatile<const_type>::type
+ , const_type
>::type
         cv_type;
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- typedef cv_type& type;
+ typedef typename add_reference<cv_type>::type type;
 #else
         typedef typename
             mpl::eval_if<

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/result_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/result_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/result_of.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -13,7 +13,9 @@
 //implementation falls back to decltype by default.
 
 #include <boost/fusion/support/ref.hpp>
+#include <boost/fusion/support/ref.hpp>
 
+#include <boost/mpl/if.hpp>
 #include <boost/type_traits/remove_pointer.hpp>
 #include <boost/type_traits/is_function.hpp>
 #include <boost/type_traits/is_member_function_pointer.hpp>
@@ -21,12 +23,8 @@
 #if defined(BOOST_NO_DECLTYPE) || defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
 # include <boost/mpl/if.hpp>
 #else
-# include <boost/fusion/support/ref.hpp>
-
 # include <boost/mpl/eval_if.hpp>
 # include <boost/mpl/has_xxx.hpp>
-
-# include <boost/type_traits/is_function.hpp>
 #endif
 
 namespace boost { namespace fusion { namespace support
@@ -71,12 +69,12 @@
>::type
          f;
 
- typedef typename
+ typedef
              mpl::or_<
                 typename is_function<f>::type
               , typename is_member_function_pointer<f>::type
- >::type
- type;
+ >
+ type;
     };
 
     template<typename FRef>
@@ -136,6 +134,8 @@
 #if defined(BOOST_NO_DECLTYPE) || defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
     using boost::result_of;
 
+ //cschmidt: The non-decltype result_of does not like ref-qualified
+ //'class type' functions
     template<typename FRef>
     struct get_func_base
     {
@@ -148,21 +148,16 @@
         typedef typename
             mpl::if_<
                 mpl::or_<
- typename is_function<f>::type
- , typename is_member_function_pointer<f>::type
+ typename is_function<f>::type
+ , typename is_member_function_pointer<f>::type
>
               , FRef
               , f
>::type
         type;
     };
-#else
- template<typename F>
- struct get_func_base
- {
- typedef F f;
- };
 
+#else
     namespace detail
     {
         BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
@@ -179,7 +174,7 @@
         {};
 
         //TODO cschmidt: non-native variadic templates version
- template<typename F,typename IdentityF, typename... Args>
+ template<typename IdentityF,typename F,typename... Args>
         struct result_of_class_type
         {
             typedef typename
@@ -204,19 +199,23 @@
     template<typename F, typename... Args>
     struct result_of<F(Args...)>
     {
- //TODO cschmidt: workaround until is_function supports rvalues
         typedef typename fusion::detail::identity<F>::type f;
 
         typedef typename
             mpl::eval_if<
                 is_function<f>
- , boost::result_of<f(Args...)>
- , detail::result_of_class_type<F,f,Args...>
+ , boost::result_of<F(Args...)>
+ , detail::result_of_class_type<f,F,Args...>
>::type
         type;
     };
-#endif
 
+ template<typename FRef>
+ struct get_func_base
+ {
+ typedef FRef type;
+ };
+#endif
 }}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/template.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/template.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/template.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -12,14 +12,12 @@
 
 # include <boost/preprocessor/expand.hpp>
 # include <boost/preprocessor/empty.hpp>
-# include <boost/preprocessor/facilities/intercept.hpp>
+# include <boost/preprocessor/cat.hpp>
 # include <boost/preprocessor/control/if.hpp>
+# include <boost/preprocessor/facilities/intercept.hpp>
 # include <boost/preprocessor/comparison/equal.hpp>
 # include <boost/preprocessor/arithmetic/sub.hpp>
-//# ifndef BOOST_NO_RVALUE_REFERENCES
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/repetition/enum.hpp>
-//# endif
+# include <boost/preprocessor/repetition/enum.hpp>
 # include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
 # include <boost/preprocessor/repetition/enum_params.hpp>
 # include <boost/preprocessor/repetition/enum_binary_params.hpp>
@@ -36,7 +34,7 @@
 # ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 # define EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION_IMPL(MAX,N)<EXPAND_TEMPLATE_ARGUMENTS(N), BOOST_PP_ENUM_PARAMS(BOOST_PP_SUB(MAX,N), void_)>
 # else
-# define EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION_IMPL(MAX,N) <EXPAND_TEMPLATE_ARGUMENTS(N)>
+# define EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION_IMPL(MAX,N)<EXPAND_TEMPLATE_ARGUMENTS(N)>
 # endif
 # define EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION(MAX,N)BOOST_PP_IF(BOOST_PP_EQUAL(MAX,N),DUMMY2,EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION_IMPL)(MAX,N)
 # define EXPAND_TEMPLATE_ARGUMENTS_BINARY(N,PRE,POST)BOOST_PP_ENUM_BINARY_PARAMS(N, PRE T, POST BOOST_PP_INTERCEPT)

Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -36,14 +36,14 @@
         {}
 
 #define TUPLE_CTOR(COMBINATION,_)\
- tuple(tuple COMBINATION other_tuple)\
- : base_type(static_cast<base_type COMBINATION>(other_tuple))\
+ tuple(tuple COMBINATION tuple)\
+ : base_type(static_cast<base_type COMBINATION>(tuple))\
         {}\
         \
         template <typename A1, typename A2>\
- tuple(std::pair<A1, A2> COMBINATION rhs)\
+ tuple(std::pair<A1, A2> COMBINATION pair)\
           : base_type(sequence_assign(\
- static_cast<std::pair<A1, A2> COMBINATION>(rhs)))\
+ static_cast<std::pair<A1, A2> COMBINATION>(pair)))\
         {}
 
         BOOST_FUSION_ALL_CV_REF_COMBINATIONS(TUPLE_CTOR,_)

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -12,6 +12,7 @@
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/remove_const.hpp>
 #include <boost/utility/enable_if.hpp>
 
 namespace boost { namespace fusion { namespace detail
@@ -72,13 +73,13 @@
 #undef VIEW_STORAGE_CTOR
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- view_storage(call_param other_t)
- : t(get_init_type(other_t))
+ view_storage(call_param t)
+ : t(get_init_type(t))
         {}
 #else
         template<typename OtherT>
- view_storage(OtherT&& other_t)
- : t(get_init_type(std::forward<OtherT>(other_t)))
+ view_storage(OtherT&& t)
+ : t(get_init_type(std::forward<OtherT>(t)))
         {}
 #endif
 
@@ -91,14 +92,18 @@
         }
 
         //TODO cschmidt: volatile?
- typename mpl::if_<traits::is_view<T>, type&, type>::type
+ typename mpl::if_<
+ traits::is_view<T>
+ , typename detail::add_lref<type>::type
+ , type
+ >::type
         get() const
         {
             return get(typename traits::is_view<T>::type());
         }
 
     private:
- type&
+ typename detail::add_lref<type>::type
         get(mpl::true_ /*is_view*/)const
         {
             return t;
@@ -112,7 +117,11 @@
 
         typedef typename detail::remove_reference<T>::type non_ref_t;
         mutable typename
- mpl::if_<traits::is_view<T>, non_ref_t, non_ref_t*>::type
+ mpl::if_<
+ traits::is_view<T>
+ , typename remove_const<non_ref_t>::type
+ , non_ref_t*
+ >::type
         t;
     };
 }}}

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -62,8 +62,8 @@
         {}
 #else
         template<typename OtherSeq>
- explicit filter_view(BOOST_FUSION_R_ELSE_CLREF(OtherSeq) other_seq)
- : seq(BOOST_FUSION_FORWARD(OtherSeq,other_seq))
+ explicit filter_view(BOOST_FUSION_R_ELSE_CLREF(OtherSeq) seq)
+ : seq(BOOST_FUSION_FORWARD(OtherSeq,seq))
         {}
 #endif
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -40,9 +40,9 @@
         typedef typename traits::category_of<First>::type category;
 
         template<typename OtherIteratorRange>
- iterator_range(BOOST_FUSION_R_ELSE_CLREF(OtherIteratorRange) other_range)
- : first(other_range.first)
- , last(other_range.last)
+ iterator_range(BOOST_FUSION_R_ELSE_CLREF(OtherIteratorRange) range)
+ : first(range.first)
+ , last(range.last)
         {}
 
         iterator_range(First const& first, Last const& last)

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -56,9 +56,9 @@
         size;
 
         template<typename OtherJointView>
- joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherJointView) other_view)
- : seq1(BOOST_FUSION_FORWARD(OtherJointView,other_view).seq1)
- , seq2(BOOST_FUSION_FORWARD(OtherJointView,other_view).seq2)
+ joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherJointView) view)
+ : seq1(BOOST_FUSION_FORWARD(OtherJointView,view).seq1)
+ , seq2(BOOST_FUSION_FORWARD(OtherJointView,view).seq2)
         {}
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -69,10 +69,10 @@
         {}
 #else
         template<typename OtherSeq1, typename OtherSeq2>
- joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherSeq1) other_seq1,
- BOOST_FUSION_R_ELSE_CLREF(OtherSeq2) other_seq2)
- : seq1(BOOST_FUSION_FORWARD(OtherSeq1,other_seq1))
- , seq2(BOOST_FUSION_FORWARD(OtherSeq2,other_seq2))
+ joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherSeq1) seq1,
+ BOOST_FUSION_R_ELSE_CLREF(OtherSeq2) seq2)
+ : seq1(BOOST_FUSION_FORWARD(OtherSeq1,seq1))
+ , seq2(BOOST_FUSION_FORWARD(OtherSeq2,seq2))
         {}
 #endif
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -57,9 +57,9 @@
 
 #define REVERSE_VIEW_CTOR(COMBINATION,_)\
         template<typename OtherSeq>\
- reverse_view(reverse_view<OtherSeq> COMBINATION other_view)\
+ reverse_view(reverse_view<OtherSeq> COMBINATION view)\
           : seq(BOOST_FUSION_FORWARD(\
- reverse_view<OtherSeq> COMBINATION,other_view).seq)\
+ reverse_view<OtherSeq> COMBINATION,view).seq)\
         {}
 
         BOOST_FUSION_ALL_CV_REF_COMBINATIONS(REVERSE_VIEW_CTOR,_)
@@ -72,8 +72,8 @@
         {}
 #else
         template<typename OtherSeq>
- explicit reverse_view(OtherSeq&& other_seq)
- : seq(std::forward<OtherSeq>(other_seq))
+ explicit reverse_view(OtherSeq&& seq)
+ : seq(std::forward<OtherSeq>(seq))
         {}
 #endif
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -27,7 +27,7 @@
             type;
 
             static type
- call(ItRef const& it)
+ call(ItRef it)
             {
                 return it.view->val;
             }

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -20,7 +20,6 @@
     struct transform_view_iterator
       : iterator_base<transform_view_iterator<First, FRef> >
     {
- //TODO !!!
         typedef FRef transform_type;
         typedef First first_type;
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -26,6 +26,7 @@
 #include <boost/fusion/view/detail/view_storage.hpp>
 
 #include <boost/mpl/bool.hpp>
+#include <boost/call_traits.hpp>
 
 #include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
 #include <boost/fusion/view/transform_view/detail/at_impl.hpp>
@@ -79,16 +80,16 @@
         typedef typename result_of::size<seq1_type>::type size;
 
         template<typename OtherTransformView>
- transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) other_view)
- : seq1(BOOST_FUSION_FORWARD(OtherTransformView,other_view).seq1)
- , seq2(BOOST_FUSION_FORWARD(OtherTransformView,other_view).seq2)
- , f(BOOST_FUSION_FORWARD(OtherTransformView,other_view).f)
+ transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
+ : seq1(BOOST_FUSION_FORWARD(OtherTransformView,view).seq1)
+ , seq2(BOOST_FUSION_FORWARD(OtherTransformView,view).seq2)
+ , f(BOOST_FUSION_FORWARD(OtherTransformView,view).f)
         {}
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
         transform_view(typename storage1_type::call_param seq1,
                 typename storage2_type::call_param seq2,
- F const& f)
+ typename call_traits<F>::param_type f)
           : seq1(seq1)
           , seq2(seq2)
           , f(f)
@@ -146,7 +147,9 @@
         {}
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- transform_view(typename storage_type::call_param seq,F const& f)
+ transform_view(
+ typename storage_type::call_param seq,
+ typename call_traits<F>::param_type f)
           : seq(seq)
           , f(f)
         {}

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -81,6 +81,7 @@
                 static type
                 call(SeqRef seq)
                 {
+ //TODO inside transform_view transform_type rref->llref
                     return type(sequence_assign(fusion::transform(
                             seq.seqs, detail::poly_at<N>())));
                 }

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -147,9 +147,9 @@
 
 #define ZIP_VIEW_CTOR(COMBINATION,_)\
         template<typename OtherSeqs>\
- zip_view(zip_view<OtherSeqs> COMBINATION other_view)\
+ zip_view(zip_view<OtherSeqs> COMBINATION view)\
           : seqs(sequence_assign(BOOST_FUSION_FORWARD(\
- zip_view<OtherSeqs> COMBINATION,other_view).seqs))\
+ zip_view<OtherSeqs> COMBINATION,view).seqs))\
         {}
 
         BOOST_FUSION_ALL_CV_REF_COMBINATIONS(ZIP_VIEW_CTOR,_)
@@ -157,9 +157,9 @@
 #undef ZIP_VIEW_CTOR
 
         template<typename OtherSeqs>
- explicit zip_view(BOOST_FUSION_R_ELSE_CLREF(OtherSeqs) other_seqs)
+ explicit zip_view(BOOST_FUSION_R_ELSE_CLREF(OtherSeqs) seqs)
           : seqs(fusion::sequence_assign(
- BOOST_FUSION_FORWARD(OtherSeqs,other_seqs)))
+ BOOST_FUSION_FORWARD(OtherSeqs,seqs)))
         {}
 
         template<typename OtherZipView>

Modified: sandbox/SOC/2009/fusion/build.bat
==============================================================================
--- sandbox/SOC/2009/fusion/build.bat (original)
+++ sandbox/SOC/2009/fusion/build.bat 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -16,7 +16,7 @@
         call :msvc
     ) else (
         if "%1" == "" (
- call :gcc
+ call :msvc
         ) else (
             echo Unknown toolset '%1'
             goto :eof

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -38,9 +38,9 @@
     [ run algorithm/replace.cpp : : : : ]
     [ run algorithm/reverse.cpp : : : : ]
     [ run algorithm/transform.cpp : : : : ]
-# [ run algorithm/zip_ignore.cpp : : : : ]
-# [ run algorithm/zip.cpp : : : : ]
-# [ run algorithm/zip2.cpp : : : : ]
+ [ run algorithm/zip_ignore.cpp : : : : ]
+ [ run algorithm/zip.cpp : : : : ]
+ [ run algorithm/zip2.cpp : : : : ]
 
     [ run sequence/adapt_struct.cpp : : : : ]
     [ run sequence/adapt_assoc_struct.cpp : : : : ]

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -63,7 +63,7 @@
 int main()
 {
     TEST_SAME_TYPE(deduce<int &>::type, int &);
- TEST_SAME_TYPE(deduce<int volatile &>::type, int volatile &);
+ TEST_SAME_TYPE(deduce<int volatile &>::type, int volatile &);
 
     //TODO rvalue tests
     TEST_SAME_TYPE(deduce<int>::type, int);

Modified: sandbox/SOC/2009/fusion/project-root.jam
==============================================================================
--- sandbox/SOC/2009/fusion/project-root.jam (original)
+++ sandbox/SOC/2009/fusion/project-root.jam 2009-07-27 16:28:15 EDT (Mon, 27 Jul 2009)
@@ -15,7 +15,8 @@
     : requirements <include>.
                    <toolset>gcc-conceptgcc:<include>workaround/conceptgcc
                    <include>$(BOOST_INCLUDES_PATH)
-# <toolset>gcc:<cxxflags>-std=c++0x
+ <toolset>gcc:<cxxflags>-std=c++0x
+ <toolset>msvc:<cxxflags>/w
     : build-dir ../bin
     : default-build debug <link>shared <runtime-link>shared <threading>multi
     ;


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