Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r69637 - in sandbox/assign_v2: boost/assign/v2 boost/assign/v2/detail boost/assign/v2/detail/functor boost/assign/v2/detail/pp boost/assign/v2/put boost/assign/v2/put/container boost/assign/v2/put/container/functor boost/assign/v2/put/deduce boost/assign/v2/put/deque boost/assign/v2/put/ext boost/assign/v2/put/frame boost/assign/v2/put/modulo boost/assign/v2/put/modulo/ext boost/assign/v2/put/modulo/std boost/assign/v2/put/pipe boost/assign/v2/put/pipe/csv boost/assign/v2/put/pipe/functor boost/assign/v2/put/std boost/assign/v2/ref/list_tuple boost/assign/v2/ref/list_tuple/cpp03 boost/assign/v2/ref/list_tuple/cpp0x boost/assign/v2/ref/tuple boost/assign/v2/ref/wrapper libs/assign/v2/src libs/assign/v2/test/put libs/assign/v2/test/put/container libs/assign/v2/test/put/deque libs/assign/v2/test/put/modulo libs/assign/v2/test/put/pipe libs/assign/v2/test/put/pipe/functor libs/assign/v2/test/put/pipe/modulo
From: erwann.rogard_at_[hidden]
Date: 2011-03-07 19:56:30


Author: e_r
Date: 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
New Revision: 69637
URL: http://svn.boost.org/trac/boost/changeset/69637

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/boost/assign/v2/detail/functor.hpp | 1
   sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp | 25 ++---
   sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp | 1
   sandbox/assign_v2/boost/assign/v2/detail/pp/args.hpp | 28 ------
   sandbox/assign_v2/boost/assign/v2/detail/pp/forward.hpp | 8
   sandbox/assign_v2/boost/assign/v2/detail/pp/params.hpp | 18 ----
   sandbox/assign_v2/boost/assign/v2/detail/pp/seq.hpp | 14 ---
   sandbox/assign_v2/boost/assign/v2/put.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/container.hpp | 1
   sandbox/assign_v2/boost/assign/v2/put/container/functor.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp | 16 ---
   sandbox/assign_v2/boost/assign/v2/put/container/functor/modulo.hpp | 5
   sandbox/assign_v2/boost/assign/v2/put/deduce.hpp | 4
   sandbox/assign_v2/boost/assign/v2/put/deduce/modifier_tag.hpp | 7 +
   sandbox/assign_v2/boost/assign/v2/put/deque.hpp | 4
   sandbox/assign_v2/boost/assign/v2/put/deque/cont.hpp | 30 +++---
   sandbox/assign_v2/boost/assign/v2/put/deque/csv.hpp | 12 ++
   sandbox/assign_v2/boost/assign/v2/put/deque/functor.hpp | 25 ++---
   sandbox/assign_v2/boost/assign/v2/put/deque/fwd.hpp | 4
   sandbox/assign_v2/boost/assign/v2/put/deque/modulo.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/ext.hpp | 18 ----
   sandbox/assign_v2/boost/assign/v2/put/ext/iterate.hpp | 113 --------------------------
   sandbox/assign_v2/boost/assign/v2/put/ext/lookup.hpp | 95 ----------------------
   sandbox/assign_v2/boost/assign/v2/put/ext/repeat.hpp | 122 -----------------------------
   sandbox/assign_v2/boost/assign/v2/put/frame.hpp | 1
   sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp | 25 ++---
   sandbox/assign_v2/boost/assign/v2/put/modulo.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/modulo/ext.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/modulo/ext/frame.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/modulo/ext/xxx.hpp | 56 -------------
   sandbox/assign_v2/boost/assign/v2/put/modulo/fun.hpp | 54 ------------
   sandbox/assign_v2/boost/assign/v2/put/modulo/fun_modifier.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/modulo/modifier.hpp | 19 ---
   sandbox/assign_v2/boost/assign/v2/put/modulo/std.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/modulo/std/frame.hpp | 7 +
   sandbox/assign_v2/boost/assign/v2/put/modulo/std/xxx.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/pipe/csv.hpp | 2
   sandbox/assign_v2/boost/assign/v2/put/pipe/csv/forward.hpp | 59 -------------
   sandbox/assign_v2/boost/assign/v2/put/pipe/csv/generator.hpp | 6 +
   sandbox/assign_v2/boost/assign/v2/put/pipe/csv/keyword.hpp | 28 ------
   sandbox/assign_v2/boost/assign/v2/put/pipe/csv/operator.hpp | 7
   sandbox/assign_v2/boost/assign/v2/put/pipe/functor.hpp | 2
   sandbox/assign_v2/boost/assign/v2/put/pipe/functor/forward.hpp | 4
   sandbox/assign_v2/boost/assign/v2/put/pipe/functor/operator.hpp | 7 +
   sandbox/assign_v2/boost/assign/v2/put/pipe/functor/size_type.hpp | 2
   sandbox/assign_v2/boost/assign/v2/put/pipe/range.hpp | 3
   sandbox/assign_v2/boost/assign/v2/put/std.hpp | 19 ----
   sandbox/assign_v2/boost/assign/v2/put/std/insert.hpp | 17 ---
   sandbox/assign_v2/boost/assign/v2/put/std/push.hpp | 17 ---
   sandbox/assign_v2/boost/assign/v2/put/std/push_back.hpp | 17 ---
   sandbox/assign_v2/boost/assign/v2/put/std/push_front.hpp | 17 ---
   sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp | 12 +-
   sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp0x/container.hpp | 10 +-
   sandbox/assign_v2/boost/assign/v2/ref/list_tuple/extraction.hpp | 12 +-
   sandbox/assign_v2/boost/assign/v2/ref/list_tuple/size_type.hpp | 2
   sandbox/assign_v2/boost/assign/v2/ref/tuple/cpp0x.hpp | 123 -----------------------------
   sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp | 2
   sandbox/assign_v2/libs/assign/v2/src/main.cpp | 52 +++++++++++-
   sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp | 166 ++++++++++++++-------------------------
   sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp | 52 +++++------
   sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/put/deque.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/put/deque/csv.cpp | 21 +++-
   sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp | 25 ++++-
   sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp | 5
   sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.cpp | 82 -------------------
   sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.h | 26 ------
   sandbox/assign_v2/libs/assign/v2/test/put/modulo/fun.cpp | 71 +++++++++++-----
   sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.cpp | 95 ----------------------
   sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.h | 26 ------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe.cpp | 4
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.cpp | 137 --------------------------------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.h | 26 ------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp | 57 -------------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.h | 29 ------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp | 36 -------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/forward.cpp | 41 ++++-----
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/fun.cpp | 40 ++++-----
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.cpp | 55 -------------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.h | 28 ------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp | 53 +++++------
   83 files changed, 460 insertions(+), 1783 deletions(-)

Modified: sandbox/assign_v2/boost/assign/v2/detail/functor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -14,5 +14,6 @@
 #include <boost/assign/v2/detail/functor/constructor.hpp>
 #include <boost/assign/v2/detail/functor/identity.hpp>
 #include <boost/assign/v2/detail/functor/new.hpp>
+#include <boost/assign/v2/detail/functor/post_increment.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -40,12 +40,8 @@
 // for k = m, ..., n-1.
 
 #include <boost/preprocessor/arithmetic/inc.hpp>
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#include <boost/preprocessor/seq/for_each_product.hpp>
-#include <boost/preprocessor/seq/first_n.hpp>
+#include <boost/preprocessor/repetition.hpp>
+#include <boost/preprocessor/seq.hpp>
 
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/assert.hpp>
@@ -62,9 +58,7 @@
 
 #include <boost/assign/v2/detail/config/limit_arity.hpp>
 #include <boost/assign/v2/detail/config/limit_lvalue_const_arity.hpp>
-#include <boost/assign/v2/detail/pp/args.hpp>
-#include <boost/assign/v2/detail/pp/params.hpp>
-#include <boost/assign/v2/detail/pp/seq.hpp>
+#include <boost/assign/v2/detail/pp/parameter_list.hpp>
 
 namespace boost{
 namespace assign{
@@ -88,22 +82,21 @@
 #else
 
 #define BOOST_ASSIGN_V2_MACRO1(r, SeqU) \
- template<BOOST_ASSIGN_V2_decl_params(SeqU)> \
+ template<BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)> \
     typename ::boost::mpl::apply1< \
         F, \
- ::boost::mpl::vector<BOOST_ASSIGN_V2_params(SeqU)> \
+ ::boost::mpl::vector<BOOST_ASSIGN_V2_TPL_ARG_LIST(SeqU)> \
>::type \
- operator()( BOOST_ASSIGN_V2_decl_args(SeqU) )const{ \
- return this->derived().template impl<BOOST_ASSIGN_V2_params(SeqU)>( \
- BOOST_ASSIGN_V2_args(SeqU) \
+ operator()( BOOST_ASSIGN_V2_PARAMETER_LIST(SeqU, _) )const{ \
+ return this->derived().template impl<BOOST_ASSIGN_V2_TPL_ARG_LIST(SeqU)>( \
+ BOOST_ASSIGN_V2_ARG_LIST(SeqU, _) \
         ); \
     } \
 /**/
 
-
 #define BOOST_ASSIGN_V2_MACRO2(z, n, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
     BOOST_ASSIGN_V2_MACRO1, \
- BOOST_PP_SEQ_FIRST_N(BOOST_PP_INC(n), BOOST_ASSIGN_V2_SEQ)\
+ BOOST_PP_SEQ_FIRST_N(BOOST_PP_INC(n), BOOST_ASSIGN_V2_SEQ_TPL_BINARY_ARG_LIST)\
 ) \
 /**/
 BOOST_PP_REPEAT(

Modified: sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -11,5 +11,6 @@
 #define BOOST_ASSIGN_V2_DETAIL_KEYWORD_ER_2010_HPP
 
 #include <boost/assign/v2/detail/keyword/nil.hpp>
+#include <boost/assign/v2/detail/keyword/ignore.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/detail/pp/args.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/pp/args.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/pp/args.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,27 +1 @@
-////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_args
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/comma_if.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/seq/for_each_i.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-#define BOOST_ASSIGN_V2_decl_args_iter(r, data, i, U) \
- BOOST_PP_COMMA_IF(i) \
- U & \
- BOOST_PP_CAT(data, i) \
-/**/
-#define BOOST_ASSIGN_V2_decl_args(SeqU) \
- BOOST_PP_SEQ_FOR_EACH_I(BOOST_ASSIGN_V2_decl_args_iter, _, SeqU) \
-/**/
-#define BOOST_ASSIGN_V2_args(SeqU) \
- BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SeqU), _)
-/**/
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/detail/pp/forward.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/pp/forward.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/pp/forward.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -12,10 +12,10 @@
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <utility>
-#define BOOST_ASSIGN_V2_forward_param(T, t) T&& t
-#define BOOST_ASSIGN_V2_forward_arg(T, t) std::forward<T>( t )
+#define BOOST_ASSIGN_V2_FORWARD_PARAM(T, t) T&& t
+#define BOOST_ASSIGN_V2_FORWARD_ARG(T, t) std::forward<T>( t )
 #else
-#define BOOST_ASSIGN_V2_forward_param(T, t) T& t
-#define BOOST_ASSIGN_V2_forward_arg(T, t) t
+#define BOOST_ASSIGN_V2_FORWARD_PARAM(T, t) T& t
+#define BOOST_ASSIGN_V2_FORWARD_ARG(T, t) t
 #endif
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/detail/pp/params.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/pp/params.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/pp/params.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,17 +1 @@
-////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_params
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/seq/enum.hpp>
-#define BOOST_ASSIGN_V2_decl_params(SeqU) \
- BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(SeqU), typename T)\
-/**/
-#define BOOST_ASSIGN_V2_params(SeqU) BOOST_PP_SEQ_ENUM(SeqU)
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/detail/pp/seq.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/pp/seq.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/pp/seq.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,13 +1 @@
-////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_SEQ
-#include <boost/preprocessor/tuple/to_seq.hpp>
-#define BOOST_ASSIGN_V2_SEQ BOOST_PP_TUPLE_TO_SEQ(10,((T0 const)(T0),(T1 const)(T1),(T2 const)(T2),(T3 const)(T3),(T4 const)(T4),(T5 const)(T5),(T6 const)(T6),(T7 const)(T7),(T8 const)(T8),(T9 const)(T9)))
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -13,10 +13,9 @@
 #include <boost/assign/v2/put/container.hpp>
 #include <boost/assign/v2/put/deduce.hpp>
 #include <boost/assign/v2/put/deque.hpp>
-#include <boost/assign/v2/put/ext.hpp>
 #include <boost/assign/v2/put/frame.hpp>
+#include <boost/assign/v2/put/modifier.hpp>
 #include <boost/assign/v2/put/modulo.hpp>
 #include <boost/assign/v2/put/pipe.hpp>
-#include <boost/assign/v2/put/std.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/container.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -10,7 +10,6 @@
 #ifndef BOOST_ASSIGN_V2_PUT_CONTAINER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_CONTAINER_ER_2010_HPP
 
-//#include <boost/assign/v2/put/container/csv.hpp>
 #include <boost/assign/v2/put/container/functor.hpp>
 #include <boost/assign/v2/put/container/range.hpp>
 

Modified: sandbox/assign_v2/boost/assign/v2/put/container/functor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/container/functor.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/container/functor.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -11,7 +11,8 @@
 #define BOOST_ASSIGN_V2_PUT_CONTAINER_FUNCTOR_ER_2010_HPP
 
 #include <boost/assign/v2/put/container/functor/adapter.hpp>
-#include <boost/assign/v2/put/container/functor/modulo.hpp>
 #include <boost/assign/v2/put/container/functor/make.hpp>
+#include <boost/assign/v2/put/container/functor/replace.hpp>
+#include <boost/assign/v2/put/container/functor/result_of.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/container/functor/make.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -9,25 +9,13 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_CONTAINER_FUNCTOR_MAKE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_CONTAINER_FUNCTOR_MAKE_ER_2010_HPP
-#include <boost/assign/v2/put/deduce/fun.hpp>
-#include <boost/assign/v2/put/deduce/modifier_tag.hpp>
-#include <boost/assign/v2/put/deduce/dependee.hpp>
+#include <boost/assign/v2/put/deduce/modifier_dependee.hpp>
 #include <boost/assign/v2/put/container/functor/adapter.hpp>
+#include <boost/assign/v2/put/container/functor/result_of.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
-namespace result_of{
-
- template<typename C>
- struct put
- {
- typedef typename put_aux::deduce_fun<C>::type f_;
- typedef typename put_aux::deduce_modifier_tag<C>::type modifier_tag_;
- typedef put_aux::adapter<C, f_, modifier_tag_> type;
- };
-
-}// result_of
 
     template<typename C>
     typename result_of::put<C>::type

Modified: sandbox/assign_v2/boost/assign/v2/put/container/functor/modulo.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/container/functor/modulo.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/container/functor/modulo.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,5 @@
+// TODO remove file
+/*
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -38,5 +40,4 @@
 }// boost
 
 #endif
-
-
+*/

Modified: sandbox/assign_v2/boost/assign/v2/put/deduce.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deduce.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deduce.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -10,10 +10,10 @@
 #ifndef BOOST_ASSIGN_V2_PUT_DEDUCE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_DEDUCE_ER_2010_HPP
 
-#include <boost/assign/v2/put/deduce/dependee.hpp>
-#include <boost/assign/v2/put/deduce/fwd.hpp>
 #include <boost/assign/v2/put/deduce/fun.hpp>
 #include <boost/assign/v2/put/deduce/modifier_tag.hpp>
 
+// derived of crtp<> have to include this file:
+// #include <boost/assign/v2/put/deduce/modifier_dependee.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/deduce/modifier_tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deduce/modifier_tag.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deduce/modifier_tag.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -17,7 +17,10 @@
 #include <boost/assign/v2/detail/traits/container/has_push.hpp>
 #include <boost/assign/v2/detail/traits/container/is_associative.hpp>
 
-#include <boost/assign/v2/put/deduce/fwd.hpp>
+#include <boost/assign/v2/put/modifier/insert/tag.hpp>
+#include <boost/assign/v2/put/modifier/iterate/tag.hpp>
+#include <boost/assign/v2/put/modifier/push/tag.hpp>
+#include <boost/assign/v2/put/modifier/push_back/tag.hpp>
 
 namespace boost{
 namespace assign{
@@ -37,7 +40,7 @@
     template<>
     struct case_<switch_tag::deduce_put, 1> :
         switch_aux::helper<
- v2::modifier_tag::iterate,
+ v2::modifier_tag::iterate<>,
             v2::container_traits::is_array
>{};
 

Modified: sandbox/assign_v2/boost/assign/v2/put/deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -11,8 +11,8 @@
 #define BOOST_ASSIGN_V2_PUT_DEQUE_ER_2010_HPP
 
 #include <boost/assign/v2/put/deque/cont.hpp>
-#include <boost/assign/v2/put/deque/csv.hpp> // TODO remove
+#include <boost/assign/v2/put/deque/csv.hpp>
 #include <boost/assign/v2/put/deque/functor.hpp>
-#include <boost/assign/v2/put/deque/modulo.hpp>
+#include <boost/assign/v2/put/deque/replace.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/deque/cont.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque/cont.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque/cont.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -17,27 +17,27 @@
 #include <boost/range/size_type.hpp>
 
 #include <boost/assign/v2/put/frame/crtp.hpp>
+#include <boost/assign/v2/put/frame/modifier.hpp>
 #include <boost/assign/v2/put/deque/fwd.hpp>
-#include <boost/assign/v2/put/deque/modulo.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
-namespace put_deque_aux{
+namespace put_aux{
 
     template<typename T>
- struct impl{ typedef std::deque<T> type; };
+ struct deque_impl{ typedef std::deque<T> type; };
 
     template<typename T, typename F, typename Tag>
- class cont :
+ class deque_cont :
         public put_aux::crtp<
- typename put_deque_aux::impl<T>::type, F, Tag,
- cont<T, F, Tag>
+ typename put_aux::deque_impl<T>::type, F, Tag,
+ deque_cont<T, F, Tag>
>
     {
- typedef typename put_deque_aux::impl<T>::type impl_;
+ typedef typename deque_impl<T>::type impl_;
         typedef impl_ const cimpl_;
- typedef put_aux::crtp<impl_, F, Tag, cont> put_crtp_;
+ typedef put_aux::crtp<impl_, F, Tag, deque_cont> put_crtp_;
 
         typedef put_aux::modifier<Tag> modifier_;
 
@@ -49,14 +49,14 @@
         typedef typename boost::range_iterator<cimpl_>::type const_iterator;
 
         // Construct
- cont(){}
- explicit cont(const F& f) : put_crtp_( f ){}
- explicit cont(impl_ const& v, F const& f): put_crtp_( f ), impl( v )
+ deque_cont(){}
+ explicit deque_cont(const F& f) : put_crtp_( f ){}
+ explicit deque_cont(impl_ const& v, F const& f): put_crtp_( f ), impl( v )
         {
             // Required by crtp when Tag or F is modified.
         }
 
- explicit cont( impl_ const& v, F const& f, modifier_ const& m )
+ explicit deque_cont( impl_ const& v, F const& f, modifier_ const& m )
             : put_crtp_( f, m ), impl( v )
         {
             // Required by crtp when Tag or F is modified.
@@ -113,20 +113,20 @@
         void pop_back(){
             this->container().pop_back();
         }
- void swap(cont& that){
+ void swap(deque_cont& that){
             this->container().swap( that.container() );
         }
 
         // Note : the modifiers such as push_back() are ommitted as they
         // accessible through the put interface.
 
- impl_& container()const{ return this->impl; }
+ impl_& container()const{ return this->impl; }
         protected:
         mutable impl_ impl;
 
     };
 
-}// put_deque_aux
+}// put_aux
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/put/deque/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque/csv.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -10,6 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_PUT_DEQUE_CSV_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_DEQUE_CSV_ER_2010_HPP
 #include <boost/type_traits/decay.hpp>
+#include <boost/type_traits/remove_cv.hpp>
 #include <boost/assign/v2/detail/keyword/nil.hpp>
 #include <boost/assign/v2/put/deque/cont.hpp>
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
@@ -27,6 +28,17 @@
 namespace boost{
 namespace assign{
 namespace v2{
+namespace result_of{
+
+ template<typename /*<<First argument>>*/T>
+ struct csv_deque : result_of::deque<
+ typename boost::decay<
+ typename boost::remove_cv<T>::type
+ >::type
+ >{};
+
+
+}// result_of
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 namespace put_csv_deque_aux{
 

Modified: sandbox/assign_v2/boost/assign/v2/put/deque/functor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque/functor.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque/functor.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -14,7 +14,9 @@
 #include <boost/type_traits/remove_cv.hpp>
 #include <boost/assign/v2/detail/keyword/nil.hpp>
 #include <boost/assign/v2/put/deque/cont.hpp>
-#include <boost/assign/v2/put/container/functor.hpp>
+#include <boost/assign/v2/put/deduce/fun.hpp>
+#include <boost/assign/v2/put/deduce/modifier_tag.hpp>
+#include <boost/assign/v2/put/deduce/modifier_dependee.hpp>
 
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <utility>
@@ -24,9 +26,7 @@
 #include <boost/preprocessor/seq.hpp>
 #include <boost/assign/v2/detail/config/limit_arity.hpp>
 #include <boost/assign/v2/detail/config/limit_lvalue_const_arity.hpp>
-#include <boost/assign/v2/detail/pp/args.hpp>
-#include <boost/assign/v2/detail/pp/params.hpp>
-#include <boost/assign/v2/detail/pp/seq.hpp>
+#include <boost/assign/v2/detail/pp/parameter_list.hpp>
 #endif
 
 namespace boost{
@@ -38,11 +38,10 @@
     struct deque
     {
         typedef typename boost::remove_cv<T>::type t_;
- typedef typename put_deque_aux::impl<t_>::type cont_;
- typedef result_of::put<cont_> traits_;
- typedef typename traits_::f_ f_;
- typedef typename traits_::modifier_tag_ modifier_tag_;
- typedef put_deque_aux::cont<t_,f_,modifier_tag_> type;
+ typedef typename put_aux::deque_impl<t_>::type impl_;
+ typedef typename put_aux::deduce_fun<impl_>::type f_;
+ typedef typename put_aux::deduce_modifier_tag<impl_>::type modifier_tag_;
+ typedef put_aux::deque_cont<t_,f_,modifier_tag_> type;
     };
 
 }// result_of
@@ -72,17 +71,17 @@
     }
 
 #define BOOST_ASSIGN_V2_MACRO1(r, SeqU) \
- template<typename T, BOOST_ASSIGN_V2_decl_params(SeqU)> \
+ template<typename T, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)> \
     typename result_of::deque<T>::type\
- deque( BOOST_ASSIGN_V2_decl_args(SeqU) ){ \
+ deque( BOOST_ASSIGN_V2_PARAMETER_LIST(SeqU, _) ){ \
         return deque<T>(v2::_nil)( \
- BOOST_ASSIGN_V2_args(SeqU) \
+ BOOST_ASSIGN_V2_ARG_LIST(SeqU, _) \
         ); \
     } \
 /**/
 #define BOOST_ASSIGN_V2_MACRO2(z, n, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
     BOOST_ASSIGN_V2_MACRO1, \
- BOOST_PP_SEQ_FIRST_N(BOOST_PP_INC(n), BOOST_ASSIGN_V2_SEQ)\
+ BOOST_PP_SEQ_FIRST_N(BOOST_PP_INC(n), BOOST_ASSIGN_V2_SEQ_TPL_BINARY_ARG_LIST)\
 ) \
 /**/
 BOOST_PP_REPEAT(

Modified: sandbox/assign_v2/boost/assign/v2/put/deque/fwd.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque/fwd.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque/fwd.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -13,9 +13,9 @@
 namespace boost{
 namespace assign{
 namespace v2{
-namespace put_deque_aux{
+namespace put_aux{
 
- template<typename T, typename F, typename Tag> class cont;
+ template<typename T, typename F, typename Tag> class deque_cont;
 
 }// put_deque_aux
 }// v2

Modified: sandbox/assign_v2/boost/assign/v2/put/deque/modulo.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque/modulo.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque/modulo.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,5 @@
+//TODO remove file
+/*
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -38,3 +40,4 @@
 }// boost
 
 #endif
+*/
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/ext.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/ext.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/ext.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,17 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_EXT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_EXT_ER_2010_HPP
-
-#include <boost/assign/v2/put/ext/iterate.hpp>
-#include <boost/assign/v2/put/ext/lookup.hpp>
-#include <boost/assign/v2/put/ext/repeat.hpp>
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/ext/iterate.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/ext/iterate.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/ext/iterate.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,112 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_EXT_ITERATE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_EXT_ITERATE_ER_2010_HPP
-#include <cstddef>
-#include <boost/assign/v2/detail/functor/identity.hpp>
-
-#include <boost/assign/v2/put/modulo/ext/xxx.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace modifier_tag{ struct iterate{}; }
-namespace put_parameter{
-
- template<typename Arg>
- struct iterate{
-
- template<typename OldFun, typename OldTag>
- struct apply : traits<
- functor_aux::identity,
- modifier_tag::iterate
- >{};
- };
-
-}// put_parameter
-namespace put_aux{
-
- template<>
- class modifier<modifier_tag::iterate>
- {
-
- public:
-
- typedef std::size_t size_type;
-
- modifier() : i( 0 ){}
- explicit modifier( size_type const& i_ )
- : i( i_ )
- {}
-
- template<typename V, typename T>
- void impl(V& v, BOOST_ASSIGN_V2_forward_param(T, t) )const
- {
- v.at( i++ ) = BOOST_ASSIGN_V2_forward_arg(T, t);
- }
-
- template<typename V, typename T>
- void impl(V& v, T* t)const
- {
- v.replace( i++ , t);
- }
-
- protected:
- mutable std::size_t i;
- };
-
- template<typename Arg = keyword_aux::nil>
- class iterate
- {
-
- public:
-
- typedef std::size_t size_type;
-
- iterate():i( 0 ){}
- iterate( size_type const& i_)
- : i( i_ )
- {}
-
- size_type const& arg()const{ return this->i; }
-
- protected:
- size_type i;
-
- };
-
- class iterate_keyword : public iterate<>
- {
-
- typedef iterate<> super_t;
-
- public:
-
- typedef std::size_t size_type;
-
- iterate_keyword(){}
-
- iterate<> operator=( size_type const& n_)const
- {
- typedef iterate<> result_;
- return result_( n_ );
- }
-
- };
-
-}// put_aux
-
-BOOST_ASSIGN_V2_PUT_MODULO_EXT_XXX(iterate)
-
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/ext/lookup.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/ext/lookup.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/ext/lookup.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,94 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_EXT_LOOKUP_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_EXT_LOOKUP_ER_2010_HPP
-#include <boost/call_traits.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/assign/v2/detail/functor/identity.hpp>
-
-#include <boost/assign/v2/put/modulo/ext/xxx.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace modifier_tag{ template<typename Arg> struct lookup{}; }
-namespace put_parameter{
-
- template<typename Arg>
- struct lookup{
-
- template<typename OldFun, typename OldTag>
- struct apply : put_parameter::traits<
- functor_aux::identity,
- modifier_tag::lookup<Arg>
- >{};
- };
-
-}// put_parameter
-namespace put_aux{
-
- template<typename Arg>
- struct modifier<modifier_tag::lookup<Arg> >
- {
-
- typedef Arg type;
- typedef boost::shared_ptr<type> ptr_;
-
- modifier(){}
- explicit modifier(
- typename boost::call_traits<type>::param_type arg
- ) : ptr( new type( arg ) )
- {}
-
- template<typename V,typename T>
- void impl(V& v, BOOST_ASSIGN_V2_forward_param(T, key) )const{
- v[ key ] = (*this->ptr)( v[ key ] );
- }
-
- private:
- ptr_ ptr;
- };
-
- template<typename Arg>
- struct lookup
- {
- typedef Arg const type;
-
- explicit lookup(type& k) : key( k ){}
-
- type& arg()const{ return this->key; }
-
- private:
- type& key;
-
- };
-
- struct lookup_keyword
- {
- lookup_keyword(){}
-
- template<typename Arg1>
- lookup<Arg1> operator=(Arg1 const& arg1)const
- {
- return lookup<Arg1>( arg1 );
- }
-
-
- };
-
-}// put_aux
-
-BOOST_ASSIGN_V2_PUT_MODULO_EXT_XXX(lookup)
-
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/ext/repeat.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/ext/repeat.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/ext/repeat.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,121 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_EXT_REPEAT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_EXT_REPEAT_ER_2010_HPP
-#include <boost/assign/v2/put/modulo/ext/xxx.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace modifier_tag{ template<typename OldTag> struct repeat{}; }
-namespace put_parameter{
-
- template<typename Arg>
- struct repeat{
-
- template<typename OldFun, typename OldTag>
- struct apply : put_parameter::traits<
- OldFun,
- modifier_tag::repeat<OldTag>
- >{};
- };
-
-}// put_parameter
-namespace put_aux{
-
- template<typename Tag>
- class modifier<modifier_tag::repeat<Tag> >
- {
- typedef modifier<Tag> inner_;
-
- public:
-
- typedef std::size_t size_type;
-
- modifier() : n( 0 ){}
- explicit modifier( size_type const& n_ )
- : n( n_ )
- {
- }
-
-#define BOOST_ASSIGN_V2_MACRO(arg)\
- size_type m = this->n;\
- while(m--) this->inner.impl(\
- v,\
- arg\
- );\
-/**/
- template<typename V, typename T>
- void impl(V& v, BOOST_ASSIGN_V2_forward_param(T, t) )const
- {
-
- BOOST_ASSIGN_V2_MACRO( BOOST_ASSIGN_V2_forward_arg(T, t) )
- }
-
- template<typename V, typename T>
- void impl(V& v, T* t)const
- {
- BOOST_ASSIGN_V2_MACRO( t )
- }
-
-#undef BOOST_ASSIGN_V2_MACRO
-
- size_type const& size()const{ return this->n; }
-
- protected:
- inner_ inner;
- size_type n;
- };
-
- template<typename Arg = keyword_aux::nil>
- class repeat
- {
-
- public:
-
- typedef std::size_t size_type;
-
- repeat( size_type const& n_)
- : n( n_ )
- {}
-
- size_type const& arg()const{ return this->n; }
-
- protected:
- size_type n;
-
- };
-
- class repeat_keyword
- {
-
- public:
-
- typedef std::size_t size_type;
-
- repeat_keyword(){}
-
- repeat<> operator=( size_type const& n_)const
- {
- typedef repeat<> result_;
- return result_( n_ );
- }
-
- };
-
-}// put_aux
-
-BOOST_ASSIGN_V2_PUT_MODULO_EXT_XXX(repeat)
-
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/frame.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/frame.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/frame.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -13,5 +13,6 @@
 #include <boost/assign/v2/put/frame/crtp.hpp>
 #include <boost/assign/v2/put/frame/modifier.hpp>
 #include <boost/assign/v2/put/frame/sub.hpp>
+#include <boost/assign/v2/put/frame/replace.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/frame/crtp.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -16,8 +16,9 @@
 #include <boost/assign/v2/detail/traits/container/is_ptr_container.hpp>
 #include <boost/assign/v2/put/frame/fwd.hpp>
 #include <boost/assign/v2/put/frame/modifier.hpp>
-#include <boost/assign/v2/put/modulo/fun.hpp>
-#include <boost/assign/v2/put/deduce/fun.hpp>
+
+//#include <boost/assign/v2/put/modulo/fun.hpp>
+//#include <boost/assign/v2/put/deduce/fun.hpp>
 
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
@@ -26,6 +27,7 @@
 #include <boost/preprocessor/arithmetic.hpp>
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/repetition.hpp>
+#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
 #include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
 #include <boost/assign/v2/detail/config/limit_arity.hpp>
 
@@ -143,29 +145,22 @@
 )
 #undef BOOST_ASSIGN_V2_MACRO
 #endif
+ // must be mutable
         C& container()const{ return this->derived().container(); }
 
+// TODO remove
+/*
         struct result_of_modulo{
 
             struct deduce
             {
                 typedef typename put_aux::deduce_fun<C>::type f_;
- typedef v2::result_of_modulo::fun<D> meta_;
+ typedef v2::result_of::modulo_fun<D> meta_;
                 typedef typename ::boost::mpl::apply1<meta_, f_>::type type;
             };
 
         };
-
- typename result_of_modulo::deduce::type
- modulo_deduce()const
- {
- typedef typename put_aux::deduce_fun<C>::type f_;
- typedef typename result_of_modulo::deduce::type result_;
- return result_(
- this->derived().container(),
- f_()
- );
- }
+*/
 
         protected:
 
@@ -184,7 +179,7 @@
         }
 
         template<typename T>
- void check_modifier( BOOST_ASSIGN_V2_forward_param(T, t) )const
+ void check_modifier( BOOST_ASSIGN_V2_FORWARD_PARAM(T, t) )const
         {
             typedef put_concept::Modifier<Tag, C,
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -10,11 +10,8 @@
 #ifndef BOOST_ASSIGN_V2_PUT_MODULO_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODULO_ER_2010_HPP
 
-#include <boost/assign/v2/put/modulo/ext.hpp>
 #include <boost/assign/v2/put/modulo/fun.hpp>
-#include <boost/assign/v2/put/modulo/fun_modifier.hpp>
 #include <boost/assign/v2/put/modulo/generic.hpp>
 #include <boost/assign/v2/put/modulo/modifier.hpp>
-#include <boost/assign/v2/put/modulo/std.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/ext.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/ext.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/ext.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,5 @@
+// TODO remove file
+/*
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -14,3 +16,4 @@
 #include <boost/assign/v2/put/modulo/ext/xxx.hpp>
 
 #endif
+*/
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/ext/frame.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/ext/frame.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/ext/frame.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,5 @@
+// TODO remove file
+/*
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -112,3 +114,4 @@
 }// boost
 
 #endif
+*/
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/ext/xxx.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/ext/xxx.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/ext/xxx.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,55 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_MODULO_EXT_XXX
-#include <boost/preprocessor/cat.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/quote.hpp>
-#include <boost/utility/enable_if.hpp>
-
-// Needed by dependants
-#include <boost/assign/v2/detail/keyword/nil.hpp>
-#include <boost/assign/v2/put/modulo/modifier.hpp>
-
-#include <boost/assign/v2/detail/pp/forward.hpp>
-#include <boost/assign/v2/put/frame/crtp.hpp>
-#include <boost/assign/v2/put/frame/modifier.hpp>
-#include <boost/assign/v2/put/modulo/ext.hpp>
-
-#define BOOST_ASSIGN_V2_PUT_MODULO_EXT_XXX(Param)\
-namespace result_of_modulo{\
- template<typename D, typename Arg>\
- struct Param\
- : ::boost::mpl::apply1<\
- result_of_modulo::ext<D>\
- , put_parameter::Param<Arg>\
- >\
- {};\
-}\
-namespace put_aux{\
-\
- template<typename C, typename F, typename Tag, typename D, typename Arg>\
- typename result_of_modulo::Param<D, Arg>::type\
- operator%(\
- crtp<C, F, Tag, D> const& lhs,\
- put_aux::Param<Arg> const& rhs\
- )\
- {\
- typedef result_of_modulo::Param<D, Arg> caller_;\
- return caller_::call( lhs.derived(), rhs );\
- }\
-\
-}\
-namespace{\
- put_aux::BOOST_PP_CAT(Param,_keyword) const BOOST_PP_CAT(_,Param)\
- = put_aux::BOOST_PP_CAT(Param,_keyword)();\
-}\
-/**/
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/fun.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/fun.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/fun.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -9,56 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODULO_FUN_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODULO_FUN_ER_2010_HPP
-#include <boost/mpl/apply.hpp>
-#include <boost/assign/v2/put/frame/fwd.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace result_of_modulo{
-
- template<typename D> struct fun/* Specialize on D(erived) */{
- template<typename F> struct apply{};
- };
-
-}// result_of_modulo
-namespace put_aux{
-
- template<typename F>
- struct modulo_fun
- {
- modulo_fun(const F& f) : value(f){}
- F value;
- };
-
- template<typename C, typename F, typename Tag, typename D, typename F1>
- typename ::boost::mpl::apply1<result_of_modulo::fun<D>, F1>::type
- operator%(
- crtp<C, F, Tag, D> const& lhs,
- modulo_fun<F1> const& rhs
- )
- {
- typedef result_of_modulo::fun<D> meta_;
- typedef typename ::boost::mpl::apply1<meta_, F1>::type result_;
- return result_( lhs.container(), rhs.value, lhs.modifier );
- }
-
- struct kwd_fun{
-
- template<typename F>
- modulo_fun<F> operator=(F const& f)const
- {
- return put_aux::modulo_fun<F>( f );
- }
-
- };
-
-}// put_aux
-namespace{
- const put_aux::kwd_fun _fun = put_aux::kwd_fun();
-}
-}// v2
-}// assign
-}// boost
-
+#include <boost/assign/v2/put/modulo/fun/make.hpp>
+#include <boost/assign/v2/put/modulo/fun/meta.hpp>
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/fun_modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/fun_modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/fun_modifier.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,5 @@
+// TODO remove file
+/*
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -36,3 +38,4 @@
 }// boost
 
 #endif
+*/
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/modifier.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -10,20 +10,9 @@
 #ifndef BOOST_ASSIGN_V2_PUT_MODULO_MODIFIER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODULO_MODIFIER_ER_2010_HPP
 
-namespace boost{
-namespace assign{
-namespace v2{
-//[result_of_modulo_modifier
-namespace result_of_modulo{
-
- template<typename /*<<Inherits from put_aux::crtp\<\>>>*/D> struct /*<<Specialize on D>>*/modifier{
- template<typename Tag> struct apply{};
- };
-
-}// result_of_modulo
-//]
-}// v2
-}// assign
-}// boost
+#include <boost/assign/v2/put/modulo/modifier/keyword.hpp>
+#include <boost/assign/v2/put/modulo/modifier/meta.hpp>
+#include <boost/assign/v2/put/modulo/modifier/make.hpp>
+#include <boost/assign/v2/put/modulo/modifier/standard.hpp>
 
 #endif

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/std.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/std.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/std.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,5 @@
+// TODO remove file
+/*
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -14,3 +16,4 @@
 #include <boost/assign/v2/put/modulo/std/xxx.hpp>
 
 #endif
+*/
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/std/frame.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/std/frame.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/std/frame.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,5 @@
+// TODO remove file
+/*
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -25,7 +27,7 @@
     struct modulo_std
     {
         modulo_std(){}
- modulo_std(Tag const& t) : modifier_tag( t ){}
+ modulo_std(Tag const& t){}// : modifier_tag( t ){}
         Tag modifier_tag;
     };
 
@@ -43,7 +45,7 @@
         return result_(
             lhs.container(),
             lhs.fun,
- modifier_( rhs.modifier_tag )
+ modifier_() // rhs.modifier_tag )
         );
     }
 
@@ -65,3 +67,4 @@
 }// boost
 
 #endif
+*/

Modified: sandbox/assign_v2/boost/assign/v2/put/modulo/std/xxx.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo/std/xxx.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo/std/xxx.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,3 +1,4 @@
+// TODO remove file
 //////////////////////////////////////////////////////////////////////////////
 // Boost.Assign v2 //
 // //
@@ -83,4 +84,4 @@
 }\
 /**/
 
-#endif
+#endif
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/csv.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -9,9 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_PIPE_CSV_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_PIPE_CSV_ER_2010_HPP
-#include <boost/assign/v2/put/pipe/csv/forward.hpp>
 #include <boost/assign/v2/put/pipe/csv/generator.hpp>
-#include <boost/assign/v2/put/pipe/csv/keyword.hpp>
 #include <boost/assign/v2/put/pipe/csv/operator.hpp>
 #include <boost/assign/v2/put/pipe/csv/rhs.hpp>
 #include <boost/assign/v2/put/pipe/csv/size_type.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/csv/forward.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/csv/forward.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/csv/forward.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,58 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_PIPE_CSV_FORWARD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_FORWARD_ER_2010_HPP
-#include <boost/utility/enable_if.hpp>
-#include <boost/assign/v2/put/pipe/csv/size_type.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace put_pipe_aux{
-
- template<csv_size_type N,
- csv_size_type I, typename F, typename C>
- typename boost::enable_if_c<
- N == I
- >::type
- csv_forward(
- F const& f ,
- C const& c
- )
- {}
-
- template<csv_size_type N,
- csv_size_type I, typename F, typename C>
- typename boost::enable_if_c<
- I < N
- >::type
- csv_forward(
- F const& f ,
- C const& c
- )
- {
- f( c[ I ].get() );
- csv_forward<N, I+1>(f, c);
- }
-
- template<typename F, typename C>
- void csv_forward(
- F const& f ,
- C const& c
- ){
- csv_forward<C::static_size, 0>(f, c );
- }
-
-}// put_pipe_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_ADAPTOR_CSV_FORWARD_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/csv/generator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/csv/generator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/csv/generator.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -164,8 +164,12 @@
     };
 
 }// put_pipe_aux
+
+ put_pipe_aux::csv_generator<> const _csv_put
+ = put_pipe_aux::csv_generator<>();
+
 }// v2
 }// assign
 }// boost
 
-#endif // BOOST_ASSIGN_V2_PUT_PIPE_CSV_CONTAINER_HPP_ER_2010
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_CSV_GENERATOR_HPP_ER_2010

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/csv/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/csv/keyword.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/csv/keyword.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,27 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_PIPE_CSV_KEYWORD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_PIPE_CSV_KEYWORD_ER_2010_HPP
-#include <boost/assign/v2/put/pipe/csv/generator.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace{
-
- put_pipe_aux::csv_generator<> const _csv_put
- = put_pipe_aux::csv_generator<>();
-
-}
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_PIPE_CSV_CONTAINER_HPP_ER_2010
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/csv/operator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/csv/operator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/csv/operator.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -9,7 +9,8 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_PIPE_CSV_OPERATOR_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_PIPE_CSV_OPERATOR_ER_2010_HPP
-#include <boost/assign/v2/put/pipe/modulo/forward.hpp>
+//#include <boost/assign/v2/put/pipe/modulo/forward.hpp>
+#include <boost/assign/v2/ref/array/as_arglist.hpp>
 #include <boost/assign/v2/put/pipe/csv/rhs.hpp>
 #include <boost/assign/v2/put/pipe/csv/size_type.hpp>
 #include <boost/assign/v2/put/pipe/csv/forward.hpp>
@@ -24,7 +25,7 @@
         typename Pars, csv_size_type N, typename U>
     C& operator|(C& cont, put_pipe_aux::csv_rhs<Pars, N, U> const& c){
 
- csv_forward(
+ v2::ref::as_arglist(
             forward_pars<Pars>(
                 put( cont ),
                 c.pars()
@@ -40,4 +41,4 @@
 }// assign
 }// boost
 
-#endif
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_CSV_OPERATOR_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/functor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/functor.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/functor.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -10,7 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_ER_2010_HPP
 
-#include <boost/assign/v2/put/pipe/functor/forward.hpp>
+//#include <boost/assign/v2/put/pipe/functor/forward.hpp>
 #include <boost/assign/v2/put/pipe/functor/operator.hpp>
 #include <boost/assign/v2/put/pipe/functor/rhs.hpp>
 #include <boost/assign/v2/put/pipe/functor/size_type.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/functor/forward.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/functor/forward.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/functor/forward.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -12,9 +12,9 @@
 
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <boost/assign/v2/put/pipe/functor/cpp0x/forward.hpp>
+//#include <boost/assign/v2/put/pipe/functor/cpp0x/forward.hpp>
 #else
-#include <boost/assign/v2/put/pipe/functor/cpp03/forward.hpp>
+//#include <boost/assign/v2/put/pipe/functor/cpp03/forward.hpp>
 #endif
 
 #endif // BOOST_ASSIGN_V2_ADAPTOR_FUNCTOR_FORWARD_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/functor/operator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/functor/operator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/functor/operator.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -11,7 +11,9 @@
 #define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_OPERATOR_ER_2010_HPP
 #include <boost/assign/v2/put/pipe/modulo/forward.hpp>
 #include <boost/assign/v2/put/pipe/functor/rhs.hpp>
-#include <boost/assign/v2/put/pipe/functor/forward.hpp>
+//#include <boost/assign/v2/put/pipe/functor/forward.hpp>
+#include <boost/assign/v2/ref/tuple/cpp03/as_arglist.hpp> // ?
+#include <boost/assign/v2/ref/list_tuple/cpp03/as_arglist.hpp>
 #include <boost/assign/v2/put/container/functor.hpp>
 
 namespace boost{
@@ -29,7 +31,8 @@
         C& cont,
         put_pipe_aux::rhs<Pars, SeqArgs, enable_pars> const& c
     ){
- forward(
+ v2::ref::as_arglist(
+ //forward(
             forward_pars<Pars>(
                 put( cont ),
                 c.pars()

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/functor/size_type.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/functor/size_type.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/functor/size_type.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -16,7 +16,7 @@
 namespace v2{
 namespace put_pipe_aux{
 
- typedef ref::list_tuple_aux::get_size_type size_type;
+ typedef ref::list_tuple_aux::list_size_type size_type;
 
 }// put_pipe_aux
 }// v2

Modified: sandbox/assign_v2/boost/assign/v2/put/pipe/range.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/pipe/range.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/pipe/range.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -27,7 +27,8 @@
 
         helper1(R const& range) : super_t( range ){}
 
- R const& range()const{ return this->get(); }
+ typename super_t::result_of_get_type
+ range()const{ return this->get(); }
 
         private:
         helper1();

Modified: sandbox/assign_v2/boost/assign/v2/put/std.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/std.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/std.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,18 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_STD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_STD_ER_2010_HPP
-
-#include <boost/assign/v2/put/std/insert.hpp>
-#include <boost/assign/v2/put/std/push.hpp>
-#include <boost/assign/v2/put/std/push_back.hpp>
-#include <boost/assign/v2/put/std/push_front.hpp>
-
-#endif
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/put/std/insert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/std/insert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/std/insert.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_STD_INSERT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_STD_INSERT_ER_2010_HPP
-#include <boost/assign/v2/put/modulo/std/xxx.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODULO_STD_XXX(insert)
-
-#endif
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/put/std/push.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/std/push.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/std/push.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_STD_PUSH_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_STD_PUSH_ER_2010_HPP
-#include <boost/assign/v2/put/modulo/std/xxx.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODULO_STD_XXX(push)
-
-#endif
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/put/std/push_back.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/std/push_back.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/std/push_back.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_STD_PUSH_BACK_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_STD_PUSH_BACK_ER_2010_HPP
-#include <boost/assign/v2/put/modulo/std/xxx.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODULO_STD_XXX(push_back)
-
-#endif
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/put/std/push_front.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/std/push_front.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/std/push_front.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_PUT_STD_PUSH_FRONT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_STD_PUSH_FRONT_ER_2010_HPP
-#include <boost/assign/v2/put/modulo/std/xxx.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODULO_STD_XXX(push_front)
-
-#endif
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp03/container.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -94,11 +94,11 @@
         struct apply : NewState::template result<params(T)>{};
     };
 
- template<list_tuple_aux::get_size_type N,
+ template<list_size_type N,
         typename L, params_default(typename T, na_type)>
     class container;
 
- template<list_tuple_aux::get_size_type N, typename L,
+ template<list_size_type N, typename L,
         params_default(typename T, na_type)
>
     struct meta_result
@@ -118,7 +118,7 @@
 
     };
 
- template<list_tuple_aux::get_size_type N, typename L,
+ template<list_size_type N, typename L,
         params_default(typename T, na_type)>
     struct traits
     {
@@ -137,7 +137,7 @@
>::type link_;
     };
 
- template<list_tuple_aux::get_size_type N, typename L, params(typename T)>
+ template<list_size_type N, typename L, params(typename T)>
     class container :
         public list_tuple_aux::traits<N, L, params(T)>::link_,
         public list_tuple_aux::traits<N, L, params(T)>::crtp_,
@@ -155,9 +155,9 @@
         tuple_ const& get_tuple()const{ return this->tuple; }
         link_ const& get_link()const{ return (*this); }
 
- typedef list_tuple_aux::get_size_type get_size_type;
+ typedef list_tuple_aux::list_size_type list_size_type;
         typedef list_tuple_aux::tuple_size_type tuple_size_type;
- BOOST_STATIC_CONSTANT( get_size_type, static_get_size = N );
+ BOOST_STATIC_CONSTANT( list_size_type, static_get_size = N );
         BOOST_STATIC_CONSTANT(
             tuple_size_type,
             static_tuple_size = ::boost::tuples::length<tuple_>::value

Modified: sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp0x/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp0x/container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/list_tuple/cpp0x/container.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -29,10 +29,10 @@
 namespace ref{
 namespace list_tuple_aux{
 
- template<list_tuple_aux::get_size_type N,
+ template<list_size_type N,
         typename L, typename...Args> class container;
 
- template<list_tuple_aux::get_size_type N, typename L, typename...Args>
+ template<list_size_type N, typename L, typename...Args>
     struct meta_result
     {
 
@@ -57,7 +57,7 @@
         struct apply : NewState::template result<Args...>{};
     };
 
- template<list_tuple_aux::get_size_type N, typename L, typename...Args>
+ template<list_size_type N, typename L, typename...Args>
     class container :
     ::boost::mpl::eval_if_c<
         N == 0,
@@ -80,9 +80,9 @@
         tuple_ const& get_tuple()const{ return this->tuple; }
         link_ const& get_link()const{ return *this; }
 
- typedef list_tuple_aux::get_size_type get_size_type;
+ typedef list_tuple_aux::list_size_type list_size_type;
         typedef list_tuple_aux::tuple_size_type tuple_size_type;
- BOOST_STATIC_CONSTANT( get_size_type, static_get_size = N );
+ BOOST_STATIC_CONSTANT( list_size_type, static_get_size = N );
         BOOST_STATIC_CONSTANT(
             tuple_size_type,
             static_tuple_size = sizeof...(Args)

Modified: sandbox/assign_v2/boost/assign/v2/ref/list_tuple/extraction.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/list_tuple/extraction.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/list_tuple/extraction.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -22,7 +22,7 @@
 namespace ref{
 namespace list_tuple_aux{
 
- template<list_tuple_aux::get_size_type N,
+ template<list_size_type N,
         typename L, typename T, typename D>
     class extraction
     {
@@ -36,13 +36,13 @@
 
         public:
 
- template<list_tuple_aux::get_size_type I>
+ template<list_size_type I>
         struct is_head : ::boost::mpl::bool_< I + 1 == N >{};
 
- template<list_tuple_aux::get_size_type I>
+ template<list_size_type I>
         struct link_get_result : L::template get_result<I>{};
 
- template<list_tuple_aux::get_size_type I>
+ template<list_size_type I>
         struct get_result : ::boost::mpl::eval_if<
             is_head<I>,
             ::boost::mpl::identity<
@@ -51,7 +51,7 @@
             link_get_result<I>
>{};
 
- template<list_tuple_aux::get_size_type I>
+ template<list_size_type I>
         typename boost::lazy_enable_if<
             is_head<I>,
             get_result<I>
@@ -61,7 +61,7 @@
             return this->derived().get_tuple();
         }
 
- template<list_tuple_aux::get_size_type I>
+ template<list_size_type I>
         typename boost::lazy_disable_if<
             is_head<I>,
             get_result<I>

Modified: sandbox/assign_v2/boost/assign/v2/ref/list_tuple/size_type.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/list_tuple/size_type.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/list_tuple/size_type.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -16,8 +16,8 @@
 namespace ref{
 namespace list_tuple_aux{
 
+ typedef int list_size_type;
     typedef int tuple_size_type;
- typedef int get_size_type;
 
 }// list_tuple_aux
 }// ref

Modified: sandbox/assign_v2/boost/assign/v2/ref/tuple/cpp0x.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/tuple/cpp0x.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/tuple/cpp0x.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,122 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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_ASSIGN_V2_REF_DETAIL_TUPLE_CPP0X_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_DETAIL_TUPLE_CPP0X_ER_2010_HPP
-#include <utility>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/assign/v2/ref/tuple/cpp0x.hpp>
-// The tuple below avoids the returns reference to a temporary error.
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace tuple_aux{
-
- template<typename ...Args>
- struct container
- {
- container(){}
- };
-
- template<typename T, bool is_ref = boost::is_reference<T>::value>
- struct traits
- {
- typedef typename boost::add_reference<T>::type ref_type;
- typedef ref_type value_type;
- };
-
- template<typename T>
- struct traits<T, false>
- {
- typedef typename boost::add_const<T>::type value_type;
- typedef typename boost::add_reference<value_type>::type ref_type;
- };
-
- template<typename T, typename ...Args>
- struct container<T, Args...> : container<Args...>
- {
- typedef container<Args...> super_t;
-
- container(T&& t, Args&&...args)
- : super_t(
- std::forward<Args>( args )...
- ),
- value(
- std::forward<T>( t )
- ) {}
-
- typedef tuple_aux::traits<T> traits_;
- typedef typename traits_::value_type value_type;
-
- value_type value;
-
- };
-
- template<int index, int acc, typename...Args>
- struct get_helper{};
-
- template<int index, int acc, typename T, typename... Args>
- struct get_helper<index, acc, T, Args...>
- : get_helper<index, acc + 1, Args...>{};
-
- template<int index, typename T, typename... Args>
- struct get_helper<index, index, T, Args...>
- {
- typedef container<T, Args...> container_;
- typedef ref::tuple_aux::traits<T> traits_;
- typedef typename traits_::ref_type type;
-
- template<typename U>
- static type call(U const& u)
- {
- container_ const& t = u;
- return t.value;
- }
- };
-
-}// tuple_aux
-namespace result_of{
-
- template<typename... Args>
- struct tuple
- {
- typedef tuple_aux::container<Args...> type;
- };
-
- template<int index, typename... Args>
- struct get_tuple : tuple_aux::get_helper<index, 0 , Args...>{};
-
-}// result_of
-
- template<typename ... Args>
- typename result_of::tuple<Args...>::type
- tuple(Args&&...args)
- {
- typedef typename result_of::tuple<Args...>::type result_;
- return result_( std::forward<Args>( args )... );
- }
-
- template<int index, typename... Args>
- typename result_of::get_tuple<index, Args...>::type
- get(tuple_aux::container<Args...> const& t)
- {
- typedef result_of::get_tuple<index, Args...> caller_;
- return caller_::call( t );
- }
-
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -45,7 +45,7 @@
         }
 
         // TODO a) crtp b) reference() or get()
- typedef T& get_type;
+ typedef T& result_of_get_type;
         T& get() const
         {
             return *this->ref_;

Modified: sandbox/assign_v2/libs/assign/v2/src/main.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/src/main.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/src/main.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,28 +1,68 @@
 
 // Test
-#include <libs/assign/v2/test/detail.h>
-#include <libs/assign/v2/test/ref.h>
-#include <libs/assign/v2/test/put.h>
-#include <libs/assign/v2/test/utility.h>
-#include <libs/assign/v2/test/other.h>
+//#include <libs/assign/v2/test/detail.h>
+//#include <libs/assign/v2/test/ref.h>
+//#include <libs/assign/v2/test/put.h>
+//#include <libs/assign/v2/test/utility.h>
+//#include <libs/assign/v2/test/other.h>
+
+#include <libs/assign/v2/test/put/container/functor.h>
+#include <libs/assign/v2/test/put/modifier/standard.h>
+#include <libs/assign/v2/test/put/modifier/iterate.h>
+#include <libs/assign/v2/test/put/modifier/lookup.h>
+#include <libs/assign/v2/test/put/modifier/repeat.h>
 
 // Speed
 //#include <fstream>
 //#include <libs/assign/v2/speed/put_ref.h>
 
-#include <boost/assign/v2/put/pipe.hpp>
+#include <string>
+#include <iostream>
+#include <boost/config.hpp>
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+
 
 int main (int argc, char * const argv[])
 {
 
     // Do not put libs/assign/v2/test/unit_testing in this project
+ {
+ std::string cpp0x = "RVALUE_REFERENCES : ";
+ #ifdef BOOST_NO_RVALUE_REFERENCES
+ cpp0x += "NO";
+ #else
+ cpp0x += "YES";
+ #endif
+ cpp0x += ", VARIADIC_TEMPLATES : ";
+ #ifdef BOOST_NO_VARIADIC_TEMPLATES
+ cpp0x += "NO";
+ #else
+ cpp0x += "YES";
+ #endif
+ cpp0x += ", 0X_HDR_TUPLE : ";
+ #ifdef BOOST_NO_0X_HDR_TUPLE
+ cpp0x += "NO";
+ #else
+ cpp0x += "YES";
+ #endif
+ cpp0x += ", ENABLE_CPP0X : " + std::string(BOOST_ASSIGN_V2_ENABLE_CPP0X ? "YES" : "NO");
+
+ std::cout << cpp0x << std::endl;
+ }
     {
+ /*
         using namespace test_assign_v2;
         xxx_detail::test();
         xxx_put::test();
         xxx_ref::test();
         xxx_utility::test();
         xxx_other::test();
+ */
+ using namespace test_assign_v2;
+ xxx_put::xxx_container::xxx_functor::test();
+ xxx_put::xxx_modifier::xxx_standard::test();
+ xxx_put::xxx_modifier::xxx_iterate::test();
+ xxx_put::xxx_modifier::xxx_repeat::test();
     }
 
     /*

Modified: sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -9,19 +9,18 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <boost/array.hpp>
 #include <deque>
-#include <list>
 #include <map>
+#include <list>
 #include <queue>
-#include <set>
-#include <stack>
-#include <vector>
 #include <string>
+#include <utility>
 #include <boost/tuple/tuple.hpp>
+#include <boost/range/begin.hpp>
+#include <boost/range/end.hpp>
+#include <boost/numeric/conversion/bounds.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/container/functor.hpp>
-
 #include <boost/assign/v2/detail/functor/identity.hpp>
-
+#include <boost/assign/v2/put/container/functor.hpp>
 #include <libs/assign/v2/test/put/container/functor.h>
 
 namespace test_assign_v2{
@@ -30,113 +29,72 @@
 namespace xxx_functor{
 
     void test(){
+
         namespace as2 = boost::assign::v2;
+
         {
- //[put_cont_functor_array
- typedef int T; T x = 1, y = 2, z = 3;
- boost::array<T, 3> cont; as2::put( cont )( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont[0] == x );
- BOOST_ASSIGN_V2_CHECK( cont[2] == z );
- //]
- }
- {
- // std::string may be replaced by const char* using a custom
- // comparator
- //[put_cont_functor_map
- typedef std::map<std::string, int> C; C cont;
- as2::put( cont )( "jan", 31 )( "feb", 28 )( "mar", 31 )("apr", 30);
-
- BOOST_ASSIGN_V2_CHECK( cont["feb"] == 28 );
- BOOST_ASSIGN_V2_CHECK( cont["apr"] == 30 );
- //]
- BOOST_ASSIGN_V2_CHECK( cont["jan"] == 31 );
- BOOST_ASSIGN_V2_CHECK( cont["mar"] == 31 );
- }
- {
- // Used in intro (same as above but different naming)
- //[put_cont_functor_cal
- typedef std::map<std::string, int> C; C cal;
- /*<< Calls `cal.insert( C::value_type(x, y) )` for [^(x,y)=( "jan", 31 ),( "feb", 28 ),( "mar", 31 ),("apr", 30)] >>*/
- as2::put( cal )( "jan", 31 )( "feb", 28 )( "mar", 31 )("apr", 30);
-
- BOOST_ASSIGN_V2_CHECK( cal["feb"] == 28 );
- //]
- }
- {
- //[put_cont_functor_set
- typedef std::string T; std::set<T> cont;
- T x = "isomer", y = "ephemeral", z = "prosaic";
- as2::put( cont )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( cont.count( x ) == 1 );
- BOOST_ASSIGN_V2_CHECK( cont.count( z ) == 1 );
+ //[array
+ const int sz = 3;
+ typedef boost::array<int, sz> row_;
+ boost::array<row_, sz> matrix3x3;
+ {
+ row_ row0, row1, row2;
+ as2::put( row0 )( 1 )( 2 )( 3 );
+ as2::put( row1 )( 4 )( 5 )( 6 );
+ as2::put( row2 )( 7 )( 8 )( 9 );
+ as2::put( matrix3x3 )( row0 )( row1 )( row2 );
+ }
+ for(int i = 0; i < 9; i++)
+ {
+ BOOST_ASSIGN_V2_CHECK( matrix3x3[ i / 3 ][ i % 3 ] == i + 1 );
+ }
+ //]
+ }
+ {
+ //[seq_var_args
+ typedef double elem_; typedef std::list<elem_> row_; typedef std::vector<row_> ragged_array_;
+ row_ a; as2::put( a )( 0.71 )( 0.63 )( 0.85 );
+ row_ b; as2::put( b )( 0.61 )( 0.69 )( 0.92 )( 0.55 );
+ ragged_array_ ragged_array;
+ as2::put( ragged_array )
+ ( boost::begin( a ), boost::end( a ) )
+ ( b )
+ ( 1, -99.99 )
+ ( );
+
+ elem_ eps = boost::numeric::bounds<elem_>::smallest();
+ BOOST_ASSIGN_V2_CHECK( ragged_array[0].size() == a.size() );
+ BOOST_ASSIGN_V2_CHECK( ragged_array[1].size() == b.size() );
+ BOOST_ASSIGN_V2_CHECK( ragged_array[2].size() == 1 );
+ BOOST_ASSIGN_V2_CHECK( ragged_array[3].size() == 0 );
+ BOOST_ASSIGN_V2_CHECK( abs( ragged_array[0].front() - a.front() ) < eps );
+ BOOST_ASSIGN_V2_CHECK( abs( ragged_array[0].back() - a.back() ) < eps );
+ BOOST_ASSIGN_V2_CHECK( abs( ragged_array[1].front() - b.front() ) < eps );
+ BOOST_ASSIGN_V2_CHECK( abs( ragged_array[1].back() - b.back() ) < eps );
+ BOOST_ASSIGN_V2_CHECK( abs( ragged_array[2].front() + 99.9 ) < eps );
+ BOOST_ASSIGN_V2_CHECK( abs( ragged_array[2].back() + 99.9 ) < eps );
             //]
- }
+ }
         {
- //[put_cont_functor_deque
- typedef int T; T x = 1, y = 2, z = 0;
- std::deque<T> cont; as2::put( cont )( x )( y )( z );
+ //[adapter
+ std::queue<int> fifo; as2::put( fifo )( 72 )( 31 )( 48 );
 
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- // Lunar eclipse years falling on winter solstice
- //[put_cont_functor_list
- typedef int T; T x = 1638, y = 2010, z = 2094;
- std::list<T> cont; ( as2::put( cont ) )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- //[put_cont_functor_vector
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> cont; as2::put( cont )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- //[put_cont_functor_queue
- typedef int T; T x = 8, y = 7, z = 4;
- std::queue<T> fifo; as2::put( fifo )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( fifo.front() == x );
- BOOST_ASSIGN_V2_CHECK( fifo.back() == z );
- //]
- }
- {
- //[put_cont_functor_stack
- typedef int T; T x = 8, y = 7, z = 4;
- std::stack<T> lifo; as2::put( lifo )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( lifo.top() == z ); lifo.pop();
- BOOST_ASSIGN_V2_CHECK( lifo.top() == y ); lifo.pop();
- BOOST_ASSIGN_V2_CHECK( lifo.top() == x ); lifo.pop();
+ BOOST_ASSIGN_V2_CHECK( fifo.front() == 72 );
+ BOOST_ASSIGN_V2_CHECK( fifo.back() == 48 );
             //]
         }
         {
             using namespace boost;
- //Reminder : cont cannot be say a std::vector<> as
- // cont.push_back( T( pi, "pi" ) );
- // causes assignment read only error.
- //[put_cont_functor_tuple
- typedef double const ct_;
- typedef boost::tuple<ct_/*<<Notice>>*/&, std::string> T;
- ct_ const pi = 3.14, e = 2.71, log2 = 0.69, na = 0.0;
- std::deque<T> cont; as2::put( cont )/*<< Notice the binary calls >>*/( pi, "pi" )( e, "e" )( log2, "log2" )/*<< Notice the unary call >>*/( na );
-
- BOOST_ASSIGN_V2_CHECK( &get<0>( cont[0] ) == &pi );
- BOOST_ASSIGN_V2_CHECK( get<1>( cont[0] ) == "pi" );
- BOOST_ASSIGN_V2_CHECK( &get<0>( cont[3] ) == &na );
- T t3 = T( na ); BOOST_ASSIGN_V2_CHECK( get<1>( cont[3] ) == get<1>( t3 ) );
+ //[seq_ref_tuple
+ typedef const char state_ [3]; state_ ct = "CT", nj = "NJ", ny = "NY";
+ typedef int code_; typedef boost::tuple<state_/*<<Notice the reference>>*/&, code_> area_code_;
+ std::deque< area_code_ > tri_state; as2::put( tri_state )( nj, 201 )( ct, 203 )( ny, 212 )( ny, 315 )( ny, 347 )( nj, 551 );
+
+ BOOST_ASSIGN_V2_CHECK( get<0>( tri_state.front() ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<0>( tri_state.back() ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<1>( tri_state.front() ) == 201 );
+ BOOST_ASSIGN_V2_CHECK( get<1>( tri_state.back() ) == 551 );
             //]
- BOOST_ASSIGN_V2_CHECK( &get<0>( cont[1] ) == &e );
- BOOST_ASSIGN_V2_CHECK( &get<0>( cont[2] ) == &log2 );
         }
     }// test()
 

Modified: sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -7,10 +7,11 @@
 // Boost Software License, Version 1.0. (See accompanying file //
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 ////////////////////////////////////////////////////////////////////////////
-#include <deque>
 #include <stack>
 #include <vector>
+#include <deque>
 #include <boost/array.hpp>
+#include <boost/tuple/tuple.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/container/range.hpp>
 #include <libs/assign/v2/test/put/container/range.h>
@@ -24,36 +25,29 @@
     {
         namespace as2 = boost::assign::v2;
 
- //[range_var
- //]
- // Forwards to put()
- {
- //[put_cont_range_array
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- boost::array<T, 3> cont; as2::put_range( cont, r );
-
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- //[put_cont_range_stack
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- typedef std::stack<T> lifo_;
-
- BOOST_ASSIGN_V2_CHECK( as2::put_range<lifo_>( r ).top() == z );
- //]
- }
+ //[range_assign
+ typedef const char state_ [3]; state_ ct = "CT", nj = "NJ", ny = "NY", ca = "CA", ore = "OR", wa = "WA";
+ typedef int code_; typedef boost::tuple<state_/*<<Notice the reference>>*/&, code_> area_code_;
+ std::deque< area_code_ > tri_state; as2::put( tri_state )( nj, 201 )( ct, 203 )( ny, 212 )( ny, 315 )( ny, 347 )( nj, 551 );
+ std::deque< area_code_ > pacific ; as2::put( pacific )( wa, 206 )( ca, 209 )( ca, 213 )( wa, 253 );
+
+ std::deque< area_code_ > states;
+ as2::put_range( tri_state, states );
+ as2::put_range( pacific, states );
+
+ using namespace boost;
+ BOOST_ASSIGN_V2_CHECK( get<0>( states.front() ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<0>( states[tri_state.size()-1] ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<0>( states.front() ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<0>( states[tri_state.size()] ) == wa );
+ BOOST_ASSIGN_V2_CHECK( get<0>( states[tri_state.size() + pacific.size() - 1 ] ) == wa );
+ //]
         {
- //[put_cont_range_deque
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- std::deque<T> cont; as2::put_range( cont, r );
+ //[range_constr
+ std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
+ typedef std::stack<int> lifo_;
 
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+ BOOST_ASSIGN_V2_CHECK( as2::put_range<lifo_>( r ).top() == 48 );
             //]
         }
     }

Modified: sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deduce.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -44,7 +44,7 @@
             as2::put_aux::check_deduce<boost::ptr_vector<int>, answer_>();
         }
         {
- typedef as2::modifier_tag::iterate answer_;
+ typedef as2::modifier_tag::iterate<> answer_;
             as2::put_aux::check_deduce<boost::array<int, 1>, answer_>();
             as2::put_aux::check_deduce<boost::ptr_array<int, 1>, answer_>();
         }

Modified: sandbox/assign_v2/libs/assign/v2/test/put/deque.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deque.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deque.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -7,6 +7,7 @@
 // Boost Software License, Version 1.0. (See accompanying file //
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 ////////////////////////////////////////////////////////////////////////////
+#include <libs/assign/v2/test/put/deque/csv.h>
 #include <libs/assign/v2/test/put/deque/functor.h>
 #include <libs/assign/v2/test/put/deque.h>
 
@@ -16,6 +17,7 @@
 
     void test()
     {
+ xxx_csv::test();
         xxx_functor::test();
     }
 

Modified: sandbox/assign_v2/libs/assign/v2/test/put/deque/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deque/csv.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deque/csv.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -23,17 +23,26 @@
         namespace as2 = boost::assign::v2;
         {
             //[csv_deque
- typedef int T; T x = 1, y = 2, z = 0;
- as2::result_of::deque<T>::type cont = as2::csv_deque( x, y, z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+ typedef as2::result_of::csv_deque<int>::type C;
+ {
+ C cont = as2::csv_deque( 72, 31, 48 );
+
+ BOOST_ASSIGN_V2_CHECK( cont.front() == 72 );
+ BOOST_ASSIGN_V2_CHECK( cont.back() == 48 );
+ }
+ {
+ C cont = as2::csv_deque( 72, 31 )/* This oddity is possible due to `result_of::csv_deque<int>::type == result_of::deque<int>::type`*/( 48 );
+
+ BOOST_ASSIGN_V2_CHECK( cont.front() == 72 );
+ BOOST_ASSIGN_V2_CHECK( cont.back() == 48 );
+ }
             //]
         }
         {
- //[deque_str
+ //[csv_deque_str
             typedef std::string str_;
             BOOST_ASSIGN_V2_CHECK(
- str_( as2::csv_deque( "x" )( "y" )( "z" )[1] ) == "y"
+ str_( as2::csv_deque( "x", "y", "z" )[1] ) == "y"
             );
             //]
         }

Modified: sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -8,6 +8,8 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 ////////////////////////////////////////////////////////////////////////////
 #include <string>
+#include <boost/array.hpp>
+#include <boost/tuple/tuple.hpp>
 #include <boost/assign/v2/put/deque/csv.hpp>
 #include <boost/assign/v2/put/deque/functor.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
@@ -23,15 +25,22 @@
     {
         namespace as2 = boost::assign::v2;
         {
- //[put_deque_functor
- typedef int T; T x = 1, z = 0;
- as2::result_of::deque<T>::type cont = as2::deque<T>/*<<T( x ), T(), T( z )>>*/( x )()( z );
-
- BOOST_ASSIGN_V2_CHECK( cont.front() == x ); T t1 = T();
- BOOST_ASSIGN_V2_CHECK( cont[1] == t1 );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+ //[deque_ref_tuple
+ typedef const char state_ [3]; state_ ct = "CT", nj = "NJ", ny = "NY";
+ typedef int code_; typedef boost::tuple<state_/*<<Notice the reference>>*/&, code_> area_code_;
+ typedef as2::result_of::deque<area_code_>::type states_;
+ states_ tri_state = as2::deque<area_code_>( nj, 201 )( ct, 203 )( ny, 212 );
+
+ using namespace boost;
+ BOOST_ASSIGN_V2_CHECK( get<0>( tri_state.front() ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<1>( tri_state.front() ) == 201 );
+
+ states_ tri_state2 = tri_state( ny, 315 )( ny, 347 )( nj, 551 );
+
+ BOOST_ASSIGN_V2_CHECK( get<0>( tri_state2.back() ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<1>( tri_state2.back() ) == 551 );
             //]
- }
+ }
         {
                 //[deque_str
             typedef std::string str_;

Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -8,8 +8,7 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
 #include <libs/assign/v2/test/put/modulo/fun.h>
-#include <libs/assign/v2/test/put/modulo/std.h>
-#include <libs/assign/v2/test/put/modulo/ext.h>
+#include <libs/assign/v2/test/put/modulo.h>
 
 namespace test_assign_v2{
 namespace xxx_put{
@@ -18,8 +17,6 @@
     void test()
     {
         xxx_fun::test();
- xxx_std::test();
- xxx_ext::test();
     }
 
 }// xxx_modulo

Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,81 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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) //
-//////////////////////////////////////////////////////////////////////////////
-#include <vector>
-#include <map>
-#include <stack>
-#include <boost/typeof/typeof.hpp>
-#include <boost/lambda/lambda.hpp>
-#include <boost/array.hpp>
-#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/ext.hpp>
-#include <boost/assign/v2/put/container/functor.hpp>
-#include <boost/assign/v2/put/deque/functor.hpp>
-#include <libs/assign/v2/test/put/modulo/ext.h>
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_modulo{
-namespace xxx_ext{
-
- void test()
- {
- namespace as2 = boost::assign::v2;
- namespace lambda = boost::lambda;
- {
- //[put_ext_iterate
- typedef int T; boost::array<T, 3> cont; cont[0] = -1;
- ( as2::put( cont ) % ( as2::_iterate = 1 ) )( 0 )( 1 );
-
- BOOST_ASSIGN_V2_CHECK( cont[0] == -1 );
- BOOST_ASSIGN_V2_CHECK( cont[1] == 0 );
- BOOST_ASSIGN_V2_CHECK( cont[2] == 1 );
- //]
- }
- {
- //[put_ext_lookup
- std::map<std::string, int> cont;
- cont["jan"] = 31; cont["feb"] = 29; cont["mar"] = 32;
- (
- as2::put( cont ) % ( as2::_lookup = ( lambda::_1 -= 1 ) )
- )( "feb" )( "mar" );
-
- BOOST_ASSIGN_V2_CHECK( cont["feb"] == 28 );
- BOOST_ASSIGN_V2_CHECK( cont["mar"] == 31 );
- //]
- }
- {
- //[put_ext_repeat
- std::vector<int> cont;
- ( as2::put( cont ) % ( as2::_repeat = 2 ) )( -1 )( 0 )( 1 );
-
- BOOST_ASSIGN_V2_CHECK( cont.size() == 6 );
- BOOST_ASSIGN_V2_CHECK( cont.front() == -1 );
- BOOST_ASSIGN_V2_CHECK( cont.back() == 1 );
- //]
- }
- {
- //[put_deque_modulo_repeat
- BOOST_AUTO(
- cont, (
- as2::deque<int>( as2::_nil ) % ( as2::_repeat = 2 )
- )( -1 )( 0 )( 1 )
- );
- BOOST_ASSIGN_V2_CHECK( boost::size( cont ) == 6 );
- //]
- BOOST_ASSIGN_V2_CHECK( cont.front() == -1 );
- BOOST_ASSIGN_V2_CHECK( cont.back() == 1 );
- }
-
- }
-
-}// xxx_ext
-}// xxx_modulo
-}// xxx_put
-}// test_assign_v2
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.h
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.h (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo/ext.h 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,25 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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 LIBS_ASSIGN_V2_TEST_PUT_MODULO_EXT_ER_2010_H
-#define LIBS_ASSIGN_V2_TEST_PUT_MODULO_EXT_ER_2010_H
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_modulo{
-namespace xxx_ext{
-
- void test();
-
-}// xxx_ext
-}// xxx_modulos
-}// xxx_put
-}// xxx_test_assign
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo/fun.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo/fun.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -10,7 +10,7 @@
 #include <vector>
 #include <deque>
 #include <boost/typeof/typeof.hpp>
-#include <boost/lambda/lambda.hpp>
+#include <boost/spirit/home/phoenix.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/container.hpp>
 #include <boost/assign/v2/put/deque.hpp>
@@ -22,48 +22,71 @@
 namespace xxx_modulo{
 namespace xxx_fun{
 
+#ifdef __llvm__
+
+ struct f{
+
+ typedef int result_type;
+
+ template<typename T>
+ result_type operator()(T const& i)const{ return i + 1; };
+
+ };
+
     void test()
     {
         namespace as2 = boost::assign::v2;
- namespace lambda = boost::lambda;
         {
- //[put_cont_modulo_fun
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<int> cont;
+ std::vector<int> incr_fact;
+ (
+ as2::put( cont ) % ( as2::_fun = f() )
+ )( 1 )( 2 )( 6 )( 24 )( 120 );
+
+ BOOST_ASSIGN_V2_CHECK( incr_fact.front() == ( 2 ) );
+ BOOST_ASSIGN_V2_CHECK( incr_fact.back() == ( 121 ) );
+ // TODO fix Bug :
+ // LLVM 1.5 - Release mode, EXC_BAD_ACCESS, stl_vector.h #602
+ }
+
+ }
+
+#else
 
- // TODO fix BUG >
+ void test()
+ {
+ namespace as2 = boost::assign::v2;
+ namespace lambda = boost::phoenix;
+ {
+ //[modulo_fun
+ std::vector<int> incr_fact;
             (
- as2::put( cont ) % ( as2::_fun = ( lambda::_1 + 1 ) )
- )( x )( y )( z );
- // < LLVM 1.5 - Release mode, EXC_BAD_ACCESS, stl_vector.h #602
- // not for only ( x )!
+ as2::put( incr_fact ) % ( as2::_fun = lambda::arg_names::arg1 + 1 )
+ )/*<<1!, 2!, 3!, 4!, 5!>>*/( 1 )( 2 )( 6 )( 24 )( 120 );
 
- //BOOST_ASSIGN_V2_CHECK( cont.front() == ( x + 1 ) );
- //BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
+ BOOST_ASSIGN_V2_CHECK( incr_fact.front() == ( 2 ) );
+ BOOST_ASSIGN_V2_CHECK( incr_fact.back() == ( 121 ) );
             //]
         }
-
-// TODO uncomment when bug above is fixed
-/*
         {
- //[put_deque_modulo_fun
- typedef int T; T x = 1, y = 2, z = 0;
+ //[modulo_fun_deque
             BOOST_AUTO(
- cont, (
- as2::deque<T>( as2::_nil ) % (
- as2::_fun = ( lambda::_1 + 1 )
+ incr_fact, (
+ as2::deque<int>( as2::_nil ) % (
+ as2::_fun = ( lambda::arg_names::arg1 + 1 )
                     )
- )( x )( y )( z )
+ )/*<<1!, 2!, 3!, 4!, 5!>>*/( 1 )( 2 )( 6 )( 24 )( 120 )
             );
 
- BOOST_ASSIGN_V2_CHECK( cont.front() == ( x + 1 ) );
- BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
+ BOOST_ASSIGN_V2_CHECK( incr_fact.front() == ( 2 ) );
+ BOOST_ASSIGN_V2_CHECK( incr_fact.back() == ( 121 ) );
             //]
         }
- */
 
     }
 
+#endif
+
+
 }// xxx_fun
 }// xxx_modulo
 }// xxx_put

Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,94 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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) //
-//////////////////////////////////////////////////////////////////////////////
-#include <deque>
-#include <list>
-#include <queue>
-#include <set>
-#include <stack>
-#include <string>
-#include <boost/typeof/typeof.hpp>
-#include <boost/lambda/lambda.hpp>
-#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/std.hpp>
-#include <boost/assign/v2/put/container/functor.hpp>
-#include <boost/assign/v2/put/deque/functor.hpp>
-#include <libs/assign/v2/test/put/modulo/std.h>
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_modulo{
-namespace xxx_std{
-
- void test()
- {
- namespace as2 = boost::assign::v2;
-
- /* Only have to check those that are in /std which are not in
- /deduce/dependee.hpp */
-
- {
- //[put_std_push_front
- typedef int T; T x = 1, y = 2, z = 0; std::deque<T> cont;
- ( as2::put( cont ) % as2::_push_front )( z )( y )( x );
- BOOST_ASSIGN_V2_CHECK( cont[0] == x );
- BOOST_ASSIGN_V2_CHECK( cont[2] == z );
- //]
- }
- {
- //[put_std_push
- typedef int T; T x = 8, y = 7, z = 4;
- typedef std::queue<T> cont_;
- cont_ fifo; ( as2::put( fifo ) % as2::_push )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( fifo.front() == x );
- BOOST_ASSIGN_V2_CHECK( fifo.back() == z );
-
- //]
- }
- {
- //[put_std_insert
- typedef std::string T; std::set<T> cont;
- T x = "isomer", y = "ephemeral", z = "prosaic";
- ( as2::put( cont ) % as2::_insert )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( cont.count( x ) == 1 );
- BOOST_ASSIGN_V2_CHECK( cont.count( z ) == 1 );
- //]
- }
- {
- // Lunar eclipse years falling on winter solstice
- //[put_std_push_back
- typedef int T; T x = 1638, y = 2010, z = 2094;
- std::list<T> cont; ( as2::put( cont ) % as2::_push_back )( x )( y )( z );
-
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- typedef int T; T x = 1, y = 2, z = 0;
- //[put_deque_std_front
- BOOST_AUTO(
- cont,
- (
- as2::deque<T>( as2::_nil ) % as2::_push_front
- )( x )( y )( z )
- );
- BOOST_ASSIGN_V2_CHECK( cont[0] == z );
- BOOST_ASSIGN_V2_CHECK( cont[2] == x );
- //]
- }
-
- }
-
-}// xxx_std
-}// xxx_modulo
-}// xxx_put
-}// test_assign_v2
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.h
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.h (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo/std.h 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,25 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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 LIBS_ASSIGN_V2_TEST_PUT_MODULO_STD_ER_2010_H
-#define LIBS_ASSIGN_V2_TEST_PUT_MODULO_STD_ER_2010_H
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_modulo{
-namespace xxx_std{
-
- void test();
-
-}// xxx_std
-}// xxx_modulo
-}// xxx_put
-}// xxx_test_assign
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -8,7 +8,7 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
 #include <libs/assign/v2/test/put/pipe/functor.h>
-#include <libs/assign/v2/test/put/pipe/container.h>
+#include <libs/assign/v2/test/put/pipe/modifier.h>
 #include <libs/assign/v2/test/put/pipe/modulo.h>
 #include <libs/assign/v2/test/put/pipe/range.h>
 #include <libs/assign/v2/test/put/pipe.h>
@@ -19,7 +19,7 @@
 
     void test(){
         xxx_functor::test();
- xxx_container::test();
+ xxx_modifier::test();
         xxx_modulo::test();
         xxx_range::test();
     }

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,136 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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) //
-//////////////////////////////////////////////////////////////////////////////
-#include <boost/array.hpp>
-#include <deque>
-#include <list>
-#include <map>
-#include <queue>
-#include <set>
-#include <stack>
-#include <vector>
-#include <string>
-#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/pipe/functor.hpp>
-#include <boost/assign/v2/put/pipe/csv.hpp> // Until workaround
-
-#include <libs/assign/v2/test/put/pipe/container.h>
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_pipe{
-namespace xxx_container{ // either functor or csv
-
- void test(){
- namespace as2 = boost::assign::v2;
- {
- //[put_pipe_functor_array
- typedef int T;
- T x = 1, y = 2, z = 3;
- boost::array<T, 3> cont;
- BOOST_ASSIGN_V2_CHECK(
- ( cont | as2::_put( x )( y )( z ) )[0] == x
- );
- BOOST_ASSIGN_V2_CHECK( cont[2] == z );
- //]
- }
- {
- //[put_pipe_csv_array
- typedef int T;
- T x = 1, y = 2, z = 3;
- boost::array<T, 3> cont;
- BOOST_ASSIGN_V2_CHECK(
- ( cont | as2::_csv_put( x, y, z ) )[0] == x
- );
- BOOST_ASSIGN_V2_CHECK( cont[2] == z );
- //]
- }
- {
- //[put_pipe_functor_map
- std::map<std::string, int> assoc;
- BOOST_ASSIGN_V2_CHECK(
- (
- assoc | as2::_put( "jan", 31 )( "feb", 28 )( "mar", 31 )( "apr", 30)
- )["feb"] == 28
- );
- //]
- }
- {
- //[put_pipe_functor_set
- typedef std::string T;
- std::set<T> assoc;
- T x = "isomer", y = "ephemeral", z = "prosaic";
- BOOST_ASSIGN_V2_CHECK(
- ( assoc | as2::_put( x )( y )( z ) ).count( x ) == 1
- );
- BOOST_ASSIGN_V2_CHECK( assoc.count( z ) == 1 );
- //]
- }
- {
- //[put_pipe_functor_deque
- typedef int T; T x = 1, y = 2, z = 0;
- std::deque<T> cont;
- BOOST_ASSIGN_V2_CHECK((
- cont | as2::_put( x )( y )( z )
- ).front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- //[put_pipe_functor_list
- typedef int T; T x = 1, y = 2, z = 0;
- std::list<T> cont;
- BOOST_ASSIGN_V2_CHECK(
- (
- cont | as2::_put( x )( y )( z )
- ).front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- //[put_pipe_functor_vector
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> cont;
- BOOST_ASSIGN_V2_CHECK(
- (
- cont | as2::_put( x )( y )( z )
- ).front() == x
- );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- {
- //[put_pipe_functor_queue
- typedef int T; T x = 8, y = 7, z = 6;
- std::queue<T> fifo;
- BOOST_ASSIGN_V2_CHECK(
- (
- fifo | as2::_put( x )( y )( z )
- ).front() == x
- );
- BOOST_ASSIGN_V2_CHECK( fifo.back() == z );
- //]
- }
- {
- //[put_pipe_functor_stack
- typedef int T; T x = 8, y = 7, z = 4;
- std::stack<T> lifo;
- BOOST_ASSIGN_V2_CHECK(
- (
- lifo | as2::_put( x )( y )( z )
- ).top() == z ); lifo.pop();
- BOOST_ASSIGN_V2_CHECK( lifo.top() == y );
- //]
- }
- }// test()
-
-}// xxx_container
-}// xxx_pipe
-}// xxx_put
-}// xxx_test_assign
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.h
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.h (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/container.h 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,25 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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 LIBS_ASSIGN_V2_TEST_PUT_PIPE_CONTAINER_ER_2010_H
-#define LIBS_ASSIGN_V2_TEST_PUT_PIPE_CONTAINER_ER_2010_H
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_pipe{
-namespace xxx_container{
-
- void test();
-
-}// xxx_container
-}// xxx_pipe
-}// xxx_put
-}// xxx_test_assign
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -7,7 +7,6 @@
 // Boost Software License, Version 1.0. (See accompanying file //
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
-#include <libs/assign/v2/test/put/pipe/functor/forward.h>
 #include <libs/assign/v2/test/put/pipe/functor/rhs.h>
 #include <libs/assign/v2/test/put/pipe/functor/str_literal.h>
 #include <libs/assign/v2/test/put/pipe/functor.h>
@@ -18,7 +17,6 @@
 namespace xxx_functor{
 
     void test(){
- xxx_forward::test();
         xxx_rhs::test();
         xxx_str_literal::test();
     }

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,56 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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) //
-//////////////////////////////////////////////////////////////////////////////
-#include <deque>
-#include <vector>
-#include <string>
-#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/ref/list_tuple/container.hpp>
-#include <boost/assign/v2/put/container/functor.hpp>
-#include <boost/assign/v2/put/pipe/functor/forward.hpp>
-#include <libs/assign/v2/test/put/pipe/functor/forward.h>
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_pipe{
-namespace xxx_functor{
-namespace xxx_forward{
-
- void test()
- {
- namespace as2 = boost::assign::v2;
- namespace ppx = as2::put_pipe_aux;
- {
- typedef int T;
- T x = 1, y = 2, z = 0;
- typedef std::vector<T> C; C cont;
- typedef as2::result_of::put<C>::type adapter_;
- adapter_ adapter = as2::put( cont );
- ppx::forward( adapter, as2::ref::list_tuple( x )( y )( z )() );
- BOOST_ASSIGN_V2_CHECK( cont[0] == x );
- BOOST_ASSIGN_V2_CHECK( cont[1] == y );
- BOOST_ASSIGN_V2_CHECK( cont[2] == z );
- BOOST_ASSIGN_V2_CHECK( cont.size() == 4 );
- }
- {
- typedef const char* T;
- typedef std::deque<T> C; C cont;
- typedef as2::result_of::put<C>::type adapter_;
- adapter_ adapter = as2::put( cont );
- ppx::forward( adapter, as2::ref::list_tuple( "x" ) );
- typedef std::string str_;
- BOOST_ASSIGN_V2_CHECK( str_( cont[0] ) == "x" );
- }
- }
-
-}// xxx_forward
-}// xxx_functor
-}// xxx_pipe
-}// xxx_put
-}// test_assign_v2
+// TODO remove file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.h
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.h (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/forward.h 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,28 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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 LIBS_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_H
-#define LIBS_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_H
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_pipe{
-namespace xxx_functor{
-namespace xxx_forward{
-
- void test();
-
-}// xxx_forward
-}// xxx_functor
-}// xxx_pipe
-}// xxx_put
-}// xxx_test_assign
-
-
-#endif // LIBS_ASSIGN_V2_PUT_FUNCTOR_FORWARD_H
+// TODO remove file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -12,7 +12,7 @@
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/check/equal_val.hpp>
 #include <boost/assign/v2/detail/check/equal_ref.hpp>
-#include <boost/assign/v2/put/ext/repeat.hpp>
+#include <boost/assign/v2/put/modifier/repeat.hpp>
 #include <boost/assign/v2/put/pipe/functor.hpp> // rhs?
 #include <boost/assign/v2/utility/csv.hpp>
 #include <libs/assign/v2/test/put/pipe/functor/rhs.h>

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -7,17 +7,8 @@
 // Boost Software License, Version 1.0. (See accompanying file //
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
-#include <list>
-#include <boost/mpl/vector/vector10.hpp>
-#include <boost/assign/v2/detail/functor/identity.hpp>
-#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/std/push_front.hpp>
-#include <boost/assign/v2/put/container.hpp>
-#include <boost/assign/v2/put/modulo/fun.hpp>
-#include <boost/assign/v2/put/modulo/std.hpp>
-#include <boost/assign/v2/put/pipe/functor.hpp>
-#include <boost/assign/v2/put/pipe/modulo/forward.hpp>
-
+#include <libs/assign/v2/test/put/pipe/modulo/fun.h>
+#include <libs/assign/v2/test/put/pipe/modulo/forward.h>
 #include <libs/assign/v2/test/put/pipe/modulo.h>
 
 namespace test_assign_v2{
@@ -27,27 +18,8 @@
 
     void test()
     {
- using namespace boost::assign::v2;
- typedef std::list<int> C; C cont;
- typedef modifier_tag::push_front modifier_tag_;
- typedef functor_aux::identity identity_;
- typedef put_aux::modulo_fun<identity_> fun_;
- typedef put_aux::modulo_std<modifier_tag_> modifier_;
- typedef boost::mpl::vector2<fun_, modifier_> pars_;
- typedef int T;
- T x = 1, y = 2, z = 3;
- put_pipe_aux::forward_pars<pars_>(
- put( cont ),
- (
- _put % (
- _fun = _identity
- ) % ( _std = modifier_tag_() )
- ).pars()
- )( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont.size() == 3 );
- BOOST_ASSIGN_V2_CHECK( cont.front() == z ); cont.pop_front();
- BOOST_ASSIGN_V2_CHECK( cont.front() == y ); cont.pop_front();
- BOOST_ASSIGN_V2_CHECK( cont.front() == x ); cont.pop_front();
+ xxx_fun::test();
+ xxx_forward::test();
     }
 
 }// xxx_modulo

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/forward.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/forward.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/forward.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -11,10 +11,9 @@
 #include <boost/mpl/vector/vector10.hpp>
 #include <boost/assign/v2/detail/functor/identity.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/std/push_front.hpp>
 #include <boost/assign/v2/put/container.hpp>
 #include <boost/assign/v2/put/modulo/fun.hpp>
-#include <boost/assign/v2/put/modulo/std.hpp>
+#include <boost/assign/v2/put/modifier/push_front.hpp>
 #include <boost/assign/v2/put/pipe/functor.hpp>
 #include <boost/assign/v2/put/pipe/modulo/forward.hpp>
 
@@ -28,27 +27,25 @@
 
     void test()
     {
- using namespace boost::assign::v2;
- typedef std::list<int> C; C cont;
- typedef modifier_tag::push_front modifier_tag_;
- typedef functor_aux::identity identity_;
- typedef put_aux::modulo_fun<identity_> fun_;
- typedef put_aux::modulo_std<modifier_tag_> modifier_;
- typedef boost::mpl::vector2<fun_, modifier_> pars_;
- typedef int T;
- T x = 1, y = 2, z = 3;
- put_pipe_aux::forward_pars<pars_>(
- put( cont ),
- (
- _put % (
- _fun = _identity
- ) % ( _std = modifier_tag_() )
- ).pars()
- )( x )( y )( z );
+ namespace as2 = boost::assign::v2;
+ typedef int T; typedef std::list<T> C; C cont;
+
+ typedef as2::functor_aux::identity f_;
+ typedef as2::put_aux::modulo_fun<f_> par1_;
+ typedef as2::put_aux::modulo_modifier<
+ as2::put_aux::keyword_modifier,
+ as2::modifier_tag::push_front
+ > par2_;
+ typedef ::boost::mpl::vector2<par1_, par2_> pars_;
+
+ as2::put_pipe_aux::forward_pars<pars_>(
+ as2::put( cont ),
+ ( as2::_put % ( as2::_fun = as2::_identity ) % ( as2::_push_front ) ).pars()
+ )( 1 )( 2 )( 3 );
         BOOST_ASSIGN_V2_CHECK( cont.size() == 3 );
- BOOST_ASSIGN_V2_CHECK( cont.front() == z ); cont.pop_front();
- BOOST_ASSIGN_V2_CHECK( cont.front() == y ); cont.pop_front();
- BOOST_ASSIGN_V2_CHECK( cont.front() == x ); cont.pop_front();
+ BOOST_ASSIGN_V2_CHECK( cont.front() == 3 ); cont.pop_front();
+ BOOST_ASSIGN_V2_CHECK( cont.front() == 2 ); cont.pop_front();
+ BOOST_ASSIGN_V2_CHECK( cont.front() == 1 ); cont.pop_front();
     }
 
 }// xxx_forward

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/fun.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/fun.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -8,7 +8,7 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
 #include <vector>
-#include <boost/lambda/lambda.hpp>
+#include <boost/spirit/home/phoenix.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/modulo/fun.hpp>
 #include <boost/assign/v2/put/pipe/functor.hpp>
@@ -24,31 +24,29 @@
     void test()
     {
         namespace as2 = boost::assign::v2;
- namespace lambda = boost::lambda;
+ namespace lambda = boost::phoenix;
         {
- //[put_pipe_functor_fun
- typedef int T; T x = 1, y = 2, z = 0; std::vector<T> cont;
-
- BOOST_ASSIGN_V2_CHECK(
- (
- cont | (
- as2::_put % ( as2::_fun = ( lambda::_1 + 1 ) )
- )( x )( y )( z )
- ).front() == ( x + 1 ) );
- BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
+ //[pipe_modulo_fun
+ typedef int int_; std::vector<int_> incr_fact;
+ int_ front = (
+ incr_fact | ( as2::_put % ( as2::_fun = lambda::arg_names::arg1 + 1 ) )/*<<1!, 2!, 3!, 4!, 5!>>*/( 1 )( 2 )( 6 )( 24 )( 120 )
+ ).front();
+
+ BOOST_ASSIGN_V2_CHECK( front == 2 );
+ BOOST_ASSIGN_V2_CHECK( incr_fact.back() == 121 );
             //]
         }
         {
- //[put_pipe_csv_fun
- typedef int T; T x = 1, y = 2, z = 0; std::vector<T> cont;
- BOOST_ASSIGN_V2_CHECK(
- (
- cont | ( as2::_csv_put % ( as2::_fun = ( lambda::_1 + 1 ) )
- )( x, y, z ) ).front() == ( x + 1 )
- );
- BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
+ //[csv_pipe_modulo_fun
+ typedef int int_; std::vector<int_> incr_fact;
+ int_ front = (
+ incr_fact | ( as2::_csv_put % ( as2::_fun = lambda::arg_names::arg1 + 1 ) )/*<<1!, 2!, 3!, 4!, 5!>>*/( 1, 2, 6, 24, 120 )
+ ).front();
+
+ BOOST_ASSIGN_V2_CHECK( front == 2 );
+ BOOST_ASSIGN_V2_CHECK( incr_fact.back() == 121 );
             //]
- }
+ }
     }
 
 }// xxx_fun

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,54 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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) //
-//////////////////////////////////////////////////////////////////////////////
-#include <deque>
-#include <boost/lambda/lambda.hpp>
-#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/std/push_front.hpp>
-#include <boost/assign/v2/put/pipe/functor.hpp>
-#include <boost/assign/v2/put/pipe/csv.hpp>
-#include <libs/assign/v2/test/put/pipe/modulo/std.h>
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_pipe{
-namespace xxx_modulo{
-namespace xxx_std{
-
- void test()
- {
- namespace as2 = boost::assign::v2;
- namespace lambda = boost::lambda;
- {
- //[put_pipe_functor_push_front
- typedef int T; T x = 1, y = 2, z = 0; std::deque<int> cont;
- BOOST_ASSIGN_V2_CHECK(
- (
- cont | ( as2::_put % as2::_push_front )( x )( y )( z )
- ).front() == z
- );
- BOOST_ASSIGN_V2_CHECK( cont.back() == x );
- //]
- }
- {
- //[put_pipe_csv_push_front
- typedef int T; T x = 1, y = 2, z = 0; std::deque<int> cont;
- BOOST_ASSIGN_V2_CHECK(
- ( cont | ( as2::_csv_put % as2::_push_front )( x, y, z )
- ).front() == z );
- BOOST_ASSIGN_V2_CHECK( cont.back() == x );
- //]
- }
- }
-
-}// xxx_std
-}// xxx_modulo
-}// xxx_pipe
-}// xxx_put
-}// test_assign_v2
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.h
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.h (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/modulo/std.h 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -1,27 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// 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 LIBS_ASSIGN_V2_TEST_PUT_PIPE_MODULO_STD_ER_2010_H
-#define LIBS_ASSIGN_V2_TEST_PUT_PIPE_MODULO_STD_ER_2010_H
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_pipe{
-namespace xxx_modulo{
-namespace xxx_std{
-
- void test();
-
-}// xxx_std
-}// xxx_modulo
-}// xxx_pipe
-}// xxx_put
-}// xxx_test_assign
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp 2011-03-07 19:56:06 EST (Mon, 07 Mar 2011)
@@ -7,13 +7,13 @@
 // Boost Software License, Version 1.0. (See accompanying file //
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 ////////////////////////////////////////////////////////////////////////////
-#include <deque>
 #include <stack>
 #include <vector>
+#include <deque>
 #include <boost/array.hpp>
+#include <boost/tuple/tuple.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/pipe/range.hpp>
-
 #include <libs/assign/v2/test/put/pipe/range.h>
 
 namespace test_assign_v2{
@@ -26,37 +26,32 @@
         namespace as2 = boost::assign::v2;
 
 
- // Forwards to put()
         {
- //[put_pipe_range_array
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- boost::array<T, 3> cont;
- BOOST_ASSIGN_V2_CHECK( (
- cont | as2::_put_range( r )
- ).front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+ //[pipe_range_assign
+ typedef const char state_ [3]; state_ ct = "CT", nj = "NJ", ny = "NY", ca = "CA", /* ore = "OR",*/ wa = "WA";
+ typedef int code_; typedef boost::tuple<state_/*<<Notice the reference>>*/&, code_> area_code_;
+ std::deque< area_code_ > tri_state; as2::put( tri_state )( nj, 201 )( ct, 203 )( ny, 212 )( ny, 315 )( ny, 347 )( nj, 551 );
+ std::deque< area_code_ > pacific ; as2::put( pacific )( wa, 206 )( ca, 209 )( ca, 213 )( wa, 253 );
+
+ std::deque< area_code_ > states; states | as2::_put_range( tri_state ) | as2::_put_range( pacific );
+
+ using namespace boost;
+ BOOST_ASSIGN_V2_CHECK( get<0>( states.front() ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<0>( states[tri_state.size()-1] ) == nj );
+ BOOST_ASSIGN_V2_CHECK( get<0>( states[tri_state.size()] ) == wa );
+ BOOST_ASSIGN_V2_CHECK( get<0>( states.back() ) == wa );
+ BOOST_ASSIGN_V2_CHECK( get<1>( states.front() ) == 201 );
+ BOOST_ASSIGN_V2_CHECK( get<1>( states[tri_state.size()-1] ) == 551 );
+ BOOST_ASSIGN_V2_CHECK( get<1>( states[tri_state.size()] ) == 206 );
+ BOOST_ASSIGN_V2_CHECK( get<1>( states.back() ) == 253 );
             //]
         }
         {
- //[put_pipe_range_stack
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- typedef std::stack<T> lifo_;
- BOOST_ASSIGN_V2_CHECK(
- (
- ::boost::type<lifo_>() | as2::_put_range( r )
- ).top() == z
- );
- //]
- }
- {
- //[put_pipe_range_deque
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- std::deque<T> cont; cont | as2::_put_range( r );
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+ //[pipe_range_constr
+ std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
+ typedef std::stack<int> lifo_;
+
+ BOOST_ASSIGN_V2_CHECK( ( ::boost::type<lifo_>() | as2::_put_range( r ) ).top() == 48 );
             //]
         }
     }


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