Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r72447 - in sandbox/assign_v2: boost/assign/v2 boost/assign/v2/deque boost/assign/v2/deque/cpp03 boost/assign/v2/include boost/assign/v2/interpreter boost/assign/v2/interpreter/cpp03 boost/assign/v2/put boost/assign/v2/put/cpp03 boost/assign/v2/support libs/assign/v2/doc libs/assign/v2/speed libs/assign/v2/src libs/assign/v2/test libs/assign/v2/test/deque libs/assign/v2/test/option libs/assign/v2/test/put libs/assign/v2/test/unit_testing
From: erwann.rogard_at_[hidden]
Date: 2011-06-06 21:23:57


Author: e_r
Date: 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
New Revision: 72447
URL: http://svn.boost.org/trac/boost/changeset/72447

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp | 206 -----------------------------
   sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp | 130 ------------------
   sandbox/assign_v2/boost/assign/v2/deque/deque.hpp | 9
   sandbox/assign_v2/boost/assign/v2/include.hpp | 6
   sandbox/assign_v2/boost/assign/v2/include/csv.hpp | 15 --
   sandbox/assign_v2/boost/assign/v2/include/csv_put.hpp | 15 --
   sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/csv.hpp | 191 ---------------------------
   sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp | 5
   sandbox/assign_v2/boost/assign/v2/interpreter/csv.hpp | 280 ---------------------------------------
   sandbox/assign_v2/boost/assign/v2/put/cpp03/csv_put.hpp | 154 ---------------------
   sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp | 81 -----------
   sandbox/assign_v2/boost/assign/v2/put/put.hpp | 6
   sandbox/assign_v2/boost/assign/v2/support/keyword.hpp | 29 +--
   sandbox/assign_v2/boost/assign/v2/support/speed.hpp | 25 --
   sandbox/assign_v2/libs/assign/v2/doc/conv.qbk | 4
   sandbox/assign_v2/libs/assign/v2/speed/test.cpp | 57 ++++----
   sandbox/assign_v2/libs/assign/v2/src/main.cpp | 10
   sandbox/assign_v2/libs/assign/v2/test/deque.cpp | 6
   sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.cpp | 120 -----------------
   sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.h | 24 ---
   sandbox/assign_v2/libs/assign/v2/test/option/data.cpp | 6
   sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp | 8
   sandbox/assign_v2/libs/assign/v2/test/put.cpp | 10
   sandbox/assign_v2/libs/assign/v2/test/put/csv_put.cpp | 223 -------------------------------
   sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp | 107 ---------------
   sandbox/assign_v2/libs/assign/v2/test/put/ptr.h | 24 ---
   sandbox/assign_v2/libs/assign/v2/test/put/put.cpp | 20 ++
   sandbox/assign_v2/libs/assign/v2/test/unit_testing/deque.cpp | 6
   sandbox/assign_v2/libs/assign/v2/test/unit_testing/put.cpp | 8
   29 files changed, 128 insertions(+), 1657 deletions(-)

Modified: sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,205 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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_DEQUE_CPP03_CSV_DEQUE_ER_2011_HPP
-#define BOOST_ASSIGN_V2_DEQUE_CPP03_CSV_DEQUE_ER_2011_HPP
-#include <boost/assign/v2/support/config/limit_csv_arity.hpp>
-#include <boost/assign/v2/support/pp/parameter_list.hpp>
-#include <boost/assign/v2/deque/csv_deque.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace interpreter_aux{
-
-#define BOOST_ASSIGN_V2_CSV_DEQUE_NESTED_ITER(z, N, SeqU)\
- template<\
- typename T, int I, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)\
- >\
- typename boost::lazy_enable_if_c<\
- I == BOOST_PP_SEQ_SIZE(SeqU),\
- result_of::csv_deque<T>\
- >::type\
- csv_deque\
- (\
- BOOST_ASSIGN_V2_CSV_PARAMETER_LIST(SeqU, N)\
- )\
- {\
- return csv<I, BOOST_PP_SEQ_ENUM(SeqU)>(\
- deque<T>( _nil )\
- BOOST_PP_ENUM_TRAILING_PARAMS(\
- BOOST_PP_MUL( N, BOOST_PP_SEQ_SIZE(SeqU) ),\
- _\
- )\
- );\
- }\
- template<\
- typename T, typename Options,\
- int I, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)\
- >\
- typename boost::lazy_enable_if_c<\
- I == BOOST_PP_SEQ_SIZE(SeqU),\
- result_of::csv_deque_option<T, Options>\
- >::type csv_deque\
- (\
- BOOST_ASSIGN_V2_CSV_PARAMETER_LIST(SeqU, N)\
- )\
- {\
- return csv<I, BOOST_PP_SEQ_ENUM(SeqU)>(\
- deque<T>( _nil ) % Options()\
- BOOST_PP_ENUM_TRAILING_PARAMS(\
- BOOST_PP_MUL( N, BOOST_PP_SEQ_SIZE(SeqU) ),\
- _\
- )\
- );\
- }\
-/**/
-
-#define BOOST_ASSIGN_V2_CSV_DEQUE_ITER(r, SeqU)\
- BOOST_PP_REPEAT_FROM_TO(\
- 1,\
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),\
- BOOST_ASSIGN_V2_CSV_DEQUE_NESTED_ITER,\
- SeqU\
- )\
-/**/
-
-#define BOOST_ASSIGN_V2_CSV_DEQUE_CONST_NON_CONST_OVERLOAD(z, I, data)\
- BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
- BOOST_ASSIGN_V2_CSV_DEQUE_ITER,\
- BOOST_ASSIGN_V2_CSV_SEQ1(I)\
- )\
-/**/
-
-#define BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD(z, I, pos)\
- BOOST_ASSIGN_V2_CSV_DEQUE_ITER(\
- ~,\
- BOOST_ASSIGN_V2_CSV_SEQ2(pos, I)\
- )\
-/**/
-
-BOOST_PP_REPEAT_FROM_TO(
- 1, // TODO zero for empty case
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_ASSIGN_V2_CSV_DEQUE_CONST_NON_CONST_OVERLOAD,
- ~
-)
-
-BOOST_PP_REPEAT_FROM_TO(
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
- BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD,
- 0
-)
-
-BOOST_PP_REPEAT_FROM_TO(
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
- BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD,
- 1
-)
-
-#undef BOOST_ASSIGN_V2_CSV_DEQUE_NESTED_ITER
-#undef BOOST_ASSIGN_V2_CSV_DEQUE_ITER
-#undef BOOST_ASSIGN_V2_CSV_DEQUE_CONST_NON_CONST_OVERLOAD
-#undef BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD
-
-#define BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_VARIADIC(z, N, is_const)\
- template<typename T, typename Options BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- typename result_of::csv_deque_option<T, Options>::type\
- csv_deque(\
- BOOST_PP_ENUM_BINARY_PARAMS(N, T, BOOST_PP_EXPR_IF(is_const, const)& _)\
- )\
- {\
- return csv(\
- deque<T, Options>( _nil )\
- BOOST_PP_ENUM_TRAILING_PARAMS(N, _)\
- );\
- }\
- template<typename T BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- typename result_of::csv_deque<T>::type\
- csv_deque(\
- BOOST_PP_ENUM_BINARY_PARAMS(N, T, BOOST_PP_EXPR_IF(is_const, const)& _)\
- )\
- {\
- return csv( deque<T>( _nil ) BOOST_PP_ENUM_TRAILING_PARAMS(N, _) );\
- }\
-/**/
-
-
-BOOST_PP_REPEAT_FROM_TO(
- 0, // case empty
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
- BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_VARIADIC,
- 0
-)
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
- BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_VARIADIC,
- 1
-)
-#undef BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_VARIADIC
-
-#define BOOST_ASSIGN_V2_MACRO(z, i, data)\
- T const& BOOST_PP_CAT(_,i)\
-/**/
-
-#define BOOST_ASSIGN_V2_REST_PARAMS(N)\
- BOOST_PP_COMMA_IF(BOOST_PP_DEC(N))\
- BOOST_PP_ENUM_SHIFTED(\
- N,\
- BOOST_ASSIGN_V2_MACRO,\
- ~\
- )\
-/**/
-
-#define BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_VARIADIC_IMPLICIT(z, N, is_const)\
- template<typename T, typename Options>\
- typename result_of::csv_deque_option<T, Options>::type\
- csv_deque(\
- T const& _0\
- BOOST_ASSIGN_V2_REST_PARAMS(N)\
- )\
- {\
- typedef typename csv_deque_deduce_value<T>::type t_;\
- return csv(\
- deque<t_, Options>( _nil ), \
- BOOST_PP_ENUM_PARAMS(N, _)\
- );\
- }\
- template<typename T>\
- typename result_of::csv_deque<T>::type\
- csv_deque(\
- T const& _0\
- BOOST_ASSIGN_V2_REST_PARAMS(N)\
- )\
- {\
- typedef typename csv_deque_deduce_value<T>::type t_;\
- return csv( deque<t_>( _nil ), BOOST_PP_ENUM_PARAMS(N, _) );\
- }\
-/**/
-
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
- BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_VARIADIC_IMPLICIT,
- ~
-)
-
-#undef BOOST_ASSIGN_V2_MACRO
-#undef BOOST_ASSIGN_V2_CSV_DEQUE_OVERLOAD_VARIADIC
-
-}// interpreter_aux
-using interpreter_aux::csv_deque;
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_DEQUE_CPP03_CSV_DEQUE_ER_2011_HPP
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/deque/csv_deque.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -9,132 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_ER_2011_HPP
 #define BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_ER_2011_HPP
-#include <boost/assign/v2/support/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/support/pp/ignore.hpp>
-#include <boost/assign/v2/deque/deque.hpp>
-#include <boost/assign/v2/interpreter/csv.hpp>
-#include <boost/assign/v2/option/list.hpp>
-#include <boost/type_traits/decay.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <utility>
-#endif
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[syntax_deque_csv_deque
-namespace interpreter_aux{
-
- template<typename T>
- struct csv_deque_deduce_value/*<-*/ : boost::decay<
- typename boost::remove_cv<
- typename boost::remove_reference<T>::type
- >::type
- >{}/*->*/;
-
-namespace result_of{
-
- template<typename T>
- struct csv_deque
- : result_of::deque<
- typename csv_deque_deduce_value<T>::type
- >
- {};
-
- template<typename T, typename O>
- struct csv_deque_option/*<-*/
- : modulo_result<
- typename result_of::csv_deque<T>::type,
- O
- >
- {}/*->*/;
-
-}// result_of
-
-//<-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
-
- // Explicit value
- template<typename T, typename... Args>
- typename result_of::csv_deque<T>::type
- csv_deque(Args&& ... args)/*<-*/
- {
- typename result_of::csv_deque<T>::type result;
- return csv(
- result,
- std::forward<Args>( args )...
- );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- template<typename T, typename Options, typename... Args>
- typename result_of::csv_deque_option<T, Options>::type
- csv_deque(Args&& ... args)/*<-*/
- {
- typename result_of::csv_deque_option<T, Options>::type result;
- return csv( result, std::forward<Args>( args )... );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- // Deduced value
- template<typename T, typename... Args>
- typename result_of::csv_deque<T>::type
- csv_deque(T&& _0, Args&& ... args)/*<-*/
- {
- typename result_of::csv_deque<T>::type result;
- return csv(
- result,
- std::forward<T>( _0 ),
- std::forward<Args>( args )...
- );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- // Arity = I
-
- template<typename T, int I, typename...Types, typename... Args>
- typename result_of::csv_deque<T>::type
- csv_deque(Args&& ... args)/*<-*/
- {
- typename result_of::csv_deque<T>::type result;
- return csv<I, Types...>( result, std::forward<Args>( args )...);
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- template<typename T,
- typename Options, int I, typename...Types, typename... Args>
- typename result_of::csv_deque_option<T, Options>::type
- csv_deque(Args&& ... args)/*<-*/
- {
- typename result_of::csv_deque_option<T, Options>::type result;
- return csv<I, Types...>( result, std::forward<Args>( args )... );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
-//<-
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
-
-}// interpreter_aux
-//<-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
- using interpreter_aux::csv_deque;
-//<-
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
-
-namespace result_of{
-
- using interpreter_aux::result_of::csv_deque;
-
-}// result_of
-
-//]
-}// v2
-}// assign
-}// boost
-
-#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <boost/assign/v2/deque/cpp03/csv_deque.hpp>
-#endif
-
+#include <boost/assign/v2/deque/csv_deque/csv_deque_basic.hpp>
+#include <boost/assign/v2/deque/csv_deque/csv_deque_ext.hpp>
 #endif // BOOST_ASSIGN_V2_DEQUE_CSV_DEQUE_ER_2011_HPP

Modified: sandbox/assign_v2/boost/assign/v2/deque/deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/deque/deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/deque/deque.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -195,8 +195,7 @@
     };
 
     template<typename T, typename O>
- struct deque_option
- /*<-*/
+ struct deque_option/*<-*/
     {
         typedef typename result_of::deque<T>::type deque_;
         typedef typename modulo_result<deque_, O>::type type;
@@ -218,12 +217,12 @@
     {
         return deque<T>( _nil ) % Options();
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
-
 //<-
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 //->
 
+ // Not empty
+
     template<typename T, typename...Args>
     typename result_of::deque<T>::type
     deque(Args&&...args)/*<-*/
@@ -234,8 +233,6 @@
         ));
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
- // Default constructible options
-
     template<typename T, typename Options, typename...Args>
     typename result_of::deque<T>::type
     deque(Args&&...args)/*<-*/

Modified: sandbox/assign_v2/boost/assign/v2/include.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -12,9 +12,11 @@
 #include <boost/assign/v2/include/chain.hpp>
 #include <boost/assign/v2/include/convert.hpp>
 #include <boost/assign/v2/include/converter.hpp>
-#include <boost/assign/v2/include/csv.hpp>
+#include <boost/assign/v2/include/csv_basic.hpp>
+#include <boost/assign/v2/include/csv_ext.hpp>
 #include <boost/assign/v2/include/csv_deque.hpp>
-#include <boost/assign/v2/include/csv_put.hpp>
+#include <boost/assign/v2/include/csv_put_basic.hpp>
+#include <boost/assign/v2/include/csv_put_ext.hpp>
 #include <boost/assign/v2/include/deque.hpp>
 #include <boost/assign/v2/include/option.hpp>
 #include <boost/assign/v2/include/put.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/include/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/csv.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,14 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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_INCLUDE_CSV_ER_2011_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_CSV_ER_2011_HPP
-#include <boost/assign/v2/interpreter/csv.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_CSV_ER_2011_HPP
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/include/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/csv_put.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,14 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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_INCLUDE_CSV_PUT_ER_2011_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_CSV_PUT_ER_2011_HPP
-#include <boost/assign/v2/put/csv_put.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_CSV_PUT_ER_2011_HPP
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/cpp03/csv.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,190 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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_INTERPRETER_CPP03_CSV_ER_2011_HPP
-#define BOOST_ASSIGN_V2_INTERPRETER_CPP03_CSV_ER_2011_HPP
-#include <boost/assign/v2/support/config/limit_functor_arity.hpp>
-#include <boost/assign/v2/support/config/limit_csv_arity.hpp>
-#include <boost/assign/v2/support/config/limit_functor_const_non_const_arity.hpp>
-#include <boost/assign/v2/support/pp/parameter_list.hpp>
-#include <boost/preprocessor.hpp> // TODO remove
-#include <boost/utility/enable_if.hpp>
-
-// This is to ensure that cpp03/csv.hpp compiles as standalone (but it's
-// better, instead, to simply include the header below)
-#include <boost/assign/v2/interpreter/csv.hpp>
-
-#define BOOST_ASSIGN_V2_INTERPRETER_CSV_EXIT(z, J, data)\
- template<\
- int I, BOOST_PP_ENUM_PARAMS(J, typename T)\
- , typename D, typename C, typename F, typename MTag, typename DTag\
- >\
- typename boost::enable_if_c<\
- I == J,\
- D const&\
- >::type\
- csv\
- (\
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter\
- )\
- {\
- return static_cast<D const&>( interpreter );\
- }\
-/**/
-
-#define BOOST_ASSIGN_V2_INTERPRETER_CSV_NESTED_ITER(z, N, SeqU)\
- template<\
- int I, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)\
- , typename D, typename C, typename F, typename MTag, typename DTag\
- >\
- typename boost::enable_if_c<\
- I == BOOST_PP_SEQ_SIZE(SeqU),\
- D const&\
- >::type\
- csv\
- (\
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,\
- BOOST_ASSIGN_V2_CSV_PARAMETER_LIST(SeqU, N)\
- )\
- {\
- interpreter(\
- BOOST_ASSIGN_V2_ARG_LIST(SeqU, 0)\
- );\
- return csv<I, BOOST_PP_SEQ_ENUM(SeqU)>(\
- static_cast<D const&>( interpreter )\
- BOOST_PP_ENUM_TRAILING(\
- BOOST_PP_MUL( BOOST_PP_DEC(N), BOOST_PP_SEQ_SIZE(SeqU) ),\
- BOOST_ASSIGN_V2_CSV_ARG_LIST_ITER,\
- BOOST_PP_SEQ_SIZE(SeqU)\
- )\
- );\
- }\
-/**/
-
-#define BOOST_ASSIGN_V2_INTERPRETER_CSV_ITER(r, SeqU)\
- BOOST_PP_REPEAT_FROM_TO(\
- 1,\
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),\
- BOOST_ASSIGN_V2_INTERPRETER_CSV_NESTED_ITER,\
- SeqU\
- )\
-/**/
-
-// CONST_NON_CONST_OVERLOAD
-
-#define BOOST_ASSIGN_V2_INTERPRETER_CSV_CONST_NON_CONST_OVERLOAD(z, I, data)\
- BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
- BOOST_ASSIGN_V2_INTERPRETER_CSV_ITER,\
- BOOST_ASSIGN_V2_CSV_SEQ1(I)\
- )\
-/**/
-
-// OVERLOAD
-
-#define BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD(z, I, pos)\
- BOOST_ASSIGN_V2_INTERPRETER_CSV_ITER(\
- ~,\
- BOOST_ASSIGN_V2_CSV_SEQ2(pos, I)\
- )\
-/**/
-
-// OVERLOAD_VARIADIC
-
-#define BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD_VARIADIC(z, N, is_const)\
- template<\
- BOOST_PP_ENUM_PARAMS(N, typename T)\
- BOOST_PP_COMMA_IF(N)\
- typename D, typename C, typename F, typename MTag, typename DTag\
- >\
- D const& csv(\
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,\
- BOOST_PP_ENUM_BINARY_PARAMS(\
- N, T, BOOST_PP_EXPR_IF(is_const, const) & _\
- )\
- )\
- {\
- interpreter( _0 );\
- return csv(\
- interpreter\
- BOOST_PP_COMMA_IF( BOOST_PP_DEC(N) )\
- BOOST_PP_ENUM_SHIFTED_PARAMS(N, _ )\
- );\
- }\
-/**/
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace interpreter_aux{
-
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
- BOOST_ASSIGN_V2_INTERPRETER_CSV_EXIT,
- ~
-)
-
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_ASSIGN_V2_INTERPRETER_CSV_CONST_NON_CONST_OVERLOAD,
- ~
-)
-
-BOOST_PP_REPEAT_FROM_TO(
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
- BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD,
- 0
-)
-
-BOOST_PP_REPEAT_FROM_TO(
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
- BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD,
- 1
-)
-
- template<typename D, typename C, typename F, typename MTag, typename DTag>
- D const& csv(
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter
- )
- {
- return static_cast<D const&>( interpreter );
- }
-
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
- BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD_VARIADIC,
- 0
-)
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
- BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD_VARIADIC,
- 1
-)
-
-#undef BOOST_ASSIGN_V2_INTERPRETER_CSV_EXIT
-#undef BOOST_ASSIGN_V2_INTERPRETER_CSV_NESTED_ITER
-#undef BOOST_ASSIGN_V2_INTERPRETER_CSV_ITER
-#undef BOOST_ASSIGN_V2_INTERPRETER_CSV_CONST_NON_CONST_OVERLOAD
-#undef BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD
-#undef BOOST_ASSIGN_V2_INTERPRETER_CSV_OVERLOAD_VARIADIC
-
-}// interpreter_aux
-
-using interpreter_aux::csv;
-
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_INTERPRETER_CPP03_CSV_ER_2011_HPP
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -168,7 +168,10 @@
             return this->for_each_impl( std::forward<R>( range ) );
         }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
- template<int I, typename R>
+ template<
+ int I,
+ typename R // Range of tuples, each of size I
+ >
         result_type for_each( R&& range )const/*<-*/
         {
             return this->for_each_impl<I>( std::forward<R>( range ) );

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/csv.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -9,282 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_INTERPRETER_CSV_ER_2011_HPP
 #define BOOST_ASSIGN_V2_INTERPRETER_CSV_ER_2011_HPP
-#include <boost/assign/v2/interpreter/crtp.hpp>
-#include <boost/assign/v2/support/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/support/pp/ignore.hpp>
-#include <boost/assign/v2/support/traits/type/add_ref_const.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits.hpp>
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <boost/assign/v2/support/mpl/variadic_args_to_indices.hpp>
-#include <utility>
-#include <tuple>
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[syntax_interpreter_csv
-namespace interpreter_aux{
-
- template<
- int I,
- typename... Types,
- typename D, typename C, typename F, typename MTag, typename DTag,
- typename... Args
- >
- D const&
- csv(
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,
- Args&&... args
- );
-
-//<-
- template<int I, int K, typename...Types>
- struct csv_tail
- {
- template<typename D, typename T, typename ...Args>
- static D const& call( D const& interpreter, T&& /*drop*/, Args&&...args )
- {
- typedef csv_tail<I, K + 1, Types...> next_;
- return next_::call(
- interpreter,
- std::forward<Args>( args )...
- );
- }
- };
-
- template<int I, typename...Types>
- struct csv_tail<I, I, Types...>
- {
- template<typename D, typename ...Args>
- static D const& call( D const& interpreter, Args&&...args)
- {
- return csv<I, Types...>(
- interpreter, std::forward<Args>( args )...
- );
- }
- };
-
- template<
- int I, typename Head, typename Tail,
- bool exit = ( pack_holder_size<int, Head>::value == I )
- > struct csv_cast{};
-
- template<int I, typename...Head, typename U, typename...Tail>
- struct csv_cast<
- I,
- pack_holder<Head...>,
- pack_holder<U, Tail...>,
- false
- > : csv_cast<
- I,
- pack_holder<Head..., U>,
- pack_holder<Tail...>
- >
- {};
-
- template<int I, typename... Head, typename... Tail>
- struct csv_cast<I, pack_holder<Head...>, pack_holder<Tail...>, true >
- {
- typedef pack_holder<Head...> type;
- };
-
- template<typename NextTuple, int ...Values, typename Tuple, typename T>
- NextTuple
- csv_next_tuple(// TODO weird warning : unused parameter 'tu'
- indices<int, Values...>,
- Tuple&& tu,
- T&& t
- )
- {
- return NextTuple(
- get<Values>( std::forward<Tuple>( tu ) )...,
- std::forward<T>( t )
- );
- }
-
- template<typename T> struct csv_tuple_elem{};
- template<typename T> struct csv_tuple_elem<T&>{ typedef T& type; };
- template<typename T> struct csv_tuple_elem<T&&>{
- // TODO
- // This ought to be T&& as long as temporary is used before the
- // semi-colon ending statement.
- typedef T type;
- };
-
- template<typename ...Args>
- struct csv_tuple
- {
- typedef std::tuple<
- typename csv_tuple_elem<Args>::type...
- > type;
- };
-
- template<int I, typename HeadPack, typename ArgsPack,
- bool exit = pack_holder_size<int, HeadPack>::value == I
- >
- struct csv_tuple_head{};
-
- template<int I, typename ...Head, typename...Args>
- struct csv_tuple_head<
- I, pack_holder<Head...>, pack_holder<Args...>, true
- >
- {
- typedef typename csv_tuple<Head&&...>::type type;
-
- static type call(type&& tu, Args&&... /*unused*/)
- {
- return tu;
- }
- };
-
- template<int I, typename ...Head, typename T, typename...Args>
- struct csv_tuple_head<
- I,
- pack_holder<Head...>,
- pack_holder<T, Args...>,
- false
- >
- {
- typedef typename csv_tuple<Head&&...>::type tuple_;
- typedef csv_tuple_head<
- I,
- pack_holder<Head..., T>,
- pack_holder<Args...>
- > next_;
- typedef typename next_::type type;
-
- static type call(tuple_&& tu, T&& t, Args&&... args)
- {
- typedef typename head_indices<
- int, sizeof...(Head)
- >::type indices_;
- typedef typename csv_tuple<Head&&..., T&&>::type next_tuple_;
- return next_::call(
- csv_next_tuple< next_tuple_ >(
- indices_(),
- std::forward<tuple_>( tu ),
- std::forward<T>( t )
- ),
- std::forward<Args>( args )...
- );
- }
-
- };
-
-/*
- template<typename D, typename...Cast>
- void csv_invoke_helper(D const& interpreter, Cast&&...args)
- {
- interpreter( std::forward<Cast>( args )...);
- }
-*/
-
- template<typename D, typename...Cast>
- void csv_invoke_helper(D const& interpreter, Cast...args)
- {
- interpreter( args...);
- }
-
- template<typename D, int...Values, typename...Cast, typename Tuple>
- void csv_invoke(
- D const& interpreter,
- indices<int, Values...>,
- pack_holder<Cast...>,
- Tuple&& tu
- )
- {
- csv_invoke_helper<D, Cast...>(
- interpreter,
- get<Values>( std::forward<Tuple>( tu ) )...
- );
- }
-
- template<
- int I,
- typename... Types,
- typename D, typename C, typename F, typename MTag, typename DTag
- >
- D const&
- csv(
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter
- )
- {
- return static_cast<D const&>( interpreter );
- }
-
- template<
- int I,
- typename... Types,
- typename D, typename C, typename F, typename MTag, typename DTag,
- typename... Args
- >
- D const&
- csv(
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,
- Args&&... args
- )
- {
- {
- typedef pack_holder<
- typename type_traits::add_ref_const<Types>::type...
- > head_;
- typedef pack_holder<Args...> tail_;
- typedef typename csv_cast<I, head_, tail_>::type cast_;
-
- typedef csv_tuple_head<
- I, pack_holder<>, pack_holder<Args...>
- > make_tuple_;
-
- typedef typename head_indices<int, I>::type indices_;
- typedef std::tuple<> init_;
- csv_invoke(
- interpreter,
- indices_(),
- cast_(),
- make_tuple_::call
- (
- init_(),
- std::forward<Args>( args )...
- )
- );
- }
- {
- typedef csv_tail<I, 0, Types...> tail_;
- return tail_::call(
- static_cast<D const&>( interpreter ),
- std::forward<Args>( args )...
- );
- }
- }
-
-//->
- template<
- typename D, typename C, typename F, typename MTag, typename DTag,
- typename... Args
- >
- D const&
- csv(
- interpreter_crtp<D, C, F, MTag, DTag> const& interpreter,
- Args&&... args
- )/*<-*/
- {
- return csv<1>( interpreter, std::forward<Args>( args )... );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
-}// interpreter_aux
-
-using interpreter_aux::csv;
-
-//]
-}// v2
-}// assign
-}// boost
-
-#else
-
-#include <boost/assign/v2/interpreter/cpp03/csv.hpp>
-
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-
+#include <boost/assign/v2/interpreter/csv/csv_basic.hpp>
+#include <boost/assign/v2/interpreter/csv/csv_ext.hpp>
 #endif // BOOST_ASSIGN_V2_INTERPRETER_CSV_ER_2011_HPP

Modified: sandbox/assign_v2/boost/assign/v2/put/cpp03/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/cpp03/csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/cpp03/csv_put.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,153 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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_CPP03_CSV_PUT_ER_2011_HPP
-#define BOOST_ASSIGN_V2_PUT_CPP03_CSV_PUT_ER_2011_HPP
-#include <boost/assign/v2/support/config/limit_csv_arity.hpp>
-#include <boost/assign/v2/support/pp/parameter_list.hpp>
-#include <boost/assign/v2/put/csv_put.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace interpreter_aux{
-
-#define BOOST_ASSIGN_V2_CSV_PUT_NESTED_ITER(z, N, SeqU)\
- template<\
- int I, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)\
- , typename C\
- >\
- typename boost::enable_if_c<I == BOOST_PP_SEQ_SIZE(SeqU)>::type\
- csv_put\
- (\
- C& cont,\
- BOOST_ASSIGN_V2_CSV_PARAMETER_LIST(SeqU, N)\
- )\
- {\
- csv<I, BOOST_PP_SEQ_ENUM(SeqU)>(\
- put( cont )\
- BOOST_PP_ENUM_TRAILING_PARAMS(\
- BOOST_PP_MUL( N, BOOST_PP_SEQ_SIZE(SeqU) ),\
- _\
- )\
- );\
- }\
- template<\
- typename Options,\
- int I, BOOST_ASSIGN_V2_TPL_PARAMETER_LIST(SeqU)\
- , typename C\
- >\
- typename boost::enable_if_c<I == BOOST_PP_SEQ_SIZE(SeqU)>::type\
- csv_put\
- (\
- C& cont,\
- BOOST_ASSIGN_V2_CSV_PARAMETER_LIST(SeqU, N)\
- )\
- {\
- csv<I, BOOST_PP_SEQ_ENUM(SeqU)>(\
- put( cont ) % Options()\
- BOOST_PP_ENUM_TRAILING_PARAMS(\
- BOOST_PP_MUL( N, BOOST_PP_SEQ_SIZE(SeqU) ),\
- _\
- )\
- );\
- }\
-/**/
-
-#define BOOST_ASSIGN_V2_CSV_PUT_ITER(r, SeqU)\
- BOOST_PP_REPEAT_FROM_TO(\
- 1,\
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),\
- BOOST_ASSIGN_V2_CSV_PUT_NESTED_ITER,\
- SeqU\
- )\
-/**/
-
-#define BOOST_ASSIGN_V2_CSV_PUT_CONST_NON_CONST_OVERLOAD(z, I, data)\
- BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
- BOOST_ASSIGN_V2_CSV_PUT_ITER,\
- BOOST_ASSIGN_V2_CSV_SEQ1(I)\
- )\
-/**/
-
-#define BOOST_ASSIGN_V2_CSV_PUT_OVERLOAD(z, I, pos)\
- BOOST_ASSIGN_V2_CSV_PUT_ITER(\
- ~,\
- BOOST_ASSIGN_V2_CSV_SEQ2(pos, I)\
- )\
-/**/
-
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_ASSIGN_V2_CSV_PUT_CONST_NON_CONST_OVERLOAD,
- ~
-)
-
-BOOST_PP_REPEAT_FROM_TO(
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
- BOOST_ASSIGN_V2_CSV_PUT_OVERLOAD,
- 0
-)
-
-BOOST_PP_REPEAT_FROM_TO(
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_CONST_NON_CONST_ARITY),
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_FUNCTOR_ARITY),
- BOOST_ASSIGN_V2_CSV_PUT_OVERLOAD,
- 1
-)
-
-#undef BOOST_ASSIGN_V2_CSV_PUT_NESTED_ITER
-#undef BOOST_ASSIGN_V2_CSV_PUT_ITER
-#undef BOOST_ASSIGN_V2_CSV_PUT_CONST_NON_CONST_OVERLOAD
-#undef BOOST_ASSIGN_V2_CSV_PUT_OVERLOAD
-
-#define BOOST_ASSIGN_V2_CSV_PUT_OVERLOAD_VARIADIC(z, N, is_const)\
- template<typename Options, typename C BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- void csv_put(\
- C& cont\
- BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(N, T, BOOST_PP_EXPR_IF(is_const, const)& _)\
- )\
- {\
- csv(\
- put<Options, C>( cont )\
- BOOST_PP_ENUM_TRAILING_PARAMS(N, _)\
- );\
- }\
- template<typename C BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- void csv_put(\
- C& cont\
- BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(N, T, BOOST_PP_EXPR_IF(is_const, const)& _)\
- )\
- {\
- csv( put( cont ) BOOST_PP_ENUM_TRAILING_PARAMS(N, _) );\
- }\
-/**/
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
- BOOST_ASSIGN_V2_CSV_PUT_OVERLOAD_VARIADIC,
- 0
-)
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_CSV_ARITY),
- BOOST_ASSIGN_V2_CSV_PUT_OVERLOAD_VARIADIC,
- 1
-)
-#undef BOOST_ASSIGN_V2_MACRO
-
-}// interpreter_aux
-using interpreter_aux::csv_put;
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_CPP03_CSV_PUT_ER_2011_HPP
+// TODO remove file

Modified: sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/csv_put.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -9,83 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_CSV_PUT_ER_2011_HPP
 #define BOOST_ASSIGN_V2_PUT_CSV_PUT_ER_2011_HPP
-#include <boost/assign/v2/interpreter/csv.hpp>
-#include <boost/assign/v2/option/data.hpp>
-#include <boost/assign/v2/put/put.hpp>
-#include <boost/assign/v2/support/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/support/pp/ignore.hpp>
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <utility>
-#endif
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[syntax_csv_put
-namespace interpreter_aux{
-//<-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
-
- template<typename C, typename... Args>
- void csv_put(C& cont, Args&&... args)/*<-*/
- {
- csv(
- put( cont ),
- std::forward<Args>( args )...
- );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- template<int I, typename ...Cast, typename C, typename... Args>
- void csv_put(C& cont, Args&&... args)/*<-*/
- {
- csv<I, Cast...>(
- put( cont ),
- std::forward<Args>( args )...
- );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- // Default constructible options
-
- template<typename Options, typename C, typename... Args>
- void csv_put(C& cont, Args&&... args)/*<-*/
- {
- csv(
- put<Options, C>( cont ),
- std::forward<Args>( args )...
- );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- template<typename Options,
- int I, typename ...Cast, typename C, typename... Args>
- void csv_put(C& cont, Args&&... args)/*<-*/
- {
- csv<I, Cast...>(
- put( cont ) % Options(),
- std::forward<Args>( args )...
- );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
-//<-
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
-
-}// interpreter_aux
-//<-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
- using interpreter_aux::csv_put;
-//<-
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
-//]
-
-}// v2
-}// assign
-}// boost
-
-#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <boost/assign/v2/put/cpp03/csv_put.hpp>
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-
+#include <boost/assign/v2/put/csv_put/csv_put_basic.hpp>
+#include <boost/assign/v2/put/csv_put/csv_put_ext.hpp>
 #endif // BOOST_ASSIGN_V2_PUT_CSV_PUT_ER_2011_HPP

Modified: sandbox/assign_v2/boost/assign/v2/put/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put/put.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -103,12 +103,10 @@
 
 namespace result_of{
 
- template<
- typename C/*<-*/
+ template<typename C/*<-*/
         , typename DGen
             = typename interpreter_aux::deduce_data_generator<C>::type
- /*->*/
- >
+ /*->*/>
     struct put/*<-*/
     {
         typedef

Modified: sandbox/assign_v2/boost/assign/v2/support/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/support/keyword.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/support/keyword.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -15,28 +15,19 @@
 namespace assign{
 namespace v2{
 //[syntax_detail_keyword
-namespace keyword_aux{
 
- struct ignore{
- ignore(){}
- template<typename Anything> ignore(Anything){}
+ struct kwd_ignore_
+ {
+ kwd_ignore_(){}
+ template<typename Anything> kwd_ignore_(Anything){}
     };
- struct element/*<-*/{}/*->*/;
- struct key/*<-*/{}/*->*/;
- struct map/*<-*/{}/*->*/;
- struct nil/*<-*/{}/*->*/;
- struct use_default/*<-*/{}/*->*/;
- struct value/*<-*/{}/*->*/;
+ struct kwd_element_/*<-*/{}/*->*/;
+ struct kwd_key_/*<-*/{}/*->*/;
+ struct kwd_map_/*<-*/{}/*->*/;
+ struct kwd_nil_/*<-*/{}/*->*/;
+ struct kwd_use_default_/*<-*/{}/*->*/;
+ struct kwd_value_/*<-*/{}/*->*/;
 
-}//keyword_aux
-
- typedef keyword_aux::ignore kwd_ignore_;
- typedef keyword_aux::element kwd_element_;
- typedef keyword_aux::key kwd_key_;
- typedef keyword_aux::map kwd_map_;
- typedef keyword_aux::nil kwd_nil_;
- typedef keyword_aux::use_default kwd_use_default_;
- typedef keyword_aux::value kwd_value_;
 /*<-*/namespace{/*->*/
     const kwd_ignore_ _ignore/*<-*/ = kwd_ignore_()/*->*/;
     const kwd_element_ _element/*<-*/ = {}/*->*/;

Modified: sandbox/assign_v2/boost/assign/v2/support/speed.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/support/speed.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/support/speed.hpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -123,33 +123,20 @@
 }
 
 // V2-PIPE_PUT
-/*
-template<typename C, typename F>
-void v2_delay_put_impl(C& cont, F const& f){ cont | f; }
-
-template<typename C, typename F, typename T, typename...Args>
-void v2_delay_put_impl(C & cont, F const& f, T&& t, Args&&...args)
-{
- v2_delay_put_impl( cont, f( std::forward<T>( t ) ), std::forward<Args>( args )... );
-}
-
 template<typename Timer, typename E, typename C, typename... Args>
-void v2_delay_put(std::size_t n, E& elapsed, C& cont, Args&&... args)
+void v2_delay_put_for_each(std::size_t n, E& elapsed, C& cont, Args&&... args)
 {
     Timer timer;
     for(std::size_t i = 0; i < n; i++)
     {
         cont.clear();
- v2_delay_put_impl(
- cont,
- v2::_put,
- std::forward<Args>( args )...
+ cont | v2::_delay_put.for_each(
+ v2::csv_deque( std::forward<Args>( args )... )
         );
     }
     elapsed = timer.elapsed();
- assert( cont.size() == sizeof...(Args) );
+ assert( cont.size() == sizeof...( Args ) );
 }
-*/
 
 // V2-CSV_PUT
 
@@ -174,9 +161,7 @@
     for(std::size_t i = 0; i < n; i++)
     {
         cont.clear();
- cont | v2::delay_csv_put(
- v2::ref::csv_array( std::forward<Args>( args )... )
- );
+ cont | v2::delay_csv_put<1>( std::forward<Args>( args )... );
     }
     elapsed = timer.elapsed();
     assert( cont.size() == sizeof...( Args ) );

Modified: sandbox/assign_v2/libs/assign/v2/doc/conv.qbk
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/doc/conv.qbk (original)
+++ sandbox/assign_v2/libs/assign/v2/doc/conv.qbk 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -16,7 +16,9 @@
         ]
         [
                 [Csv form]
- [ A syntax, dual to that of an associated functor, that takes the form of one function invocation]
+ [
+ __csv_form__
+ ]
         ]
         [
                 [Data generator]

Modified: sandbox/assign_v2/libs/assign/v2/speed/test.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/speed/test.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/speed/test.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -183,10 +183,10 @@
         n, elapsed, cont, std::forward<Args>( args )... ),
        "v2_csv_put"
     )
- //MACRO( as2::speed_aux::v2_delay_put<timer_>(
- // n, elapsed, cont, std::forward<Args>( args )... ),
- // "v2_delay_put"
- //)
+ MACRO( as2::speed_aux::v2_delay_put_for_each<timer_>(
+ n, elapsed, cont, std::forward<Args>( args )... ),
+ "v2_delay_put_for_each"
+ )
     MACRO( as2::speed_aux::v2_delay_csv_put<timer_>(
         n, elapsed, cont, std::forward<Args>( args )... ),
        "v2_delay_csv_put"
@@ -243,18 +243,18 @@
     BOOST_STATIC_ASSERT( total_sz/(128 * n) > 0); // Invariant : k * n * m = total_sz;
 
     std::map<str_, str_> cols;
- cols["stl_push_back"] = "cont.push_back( arg1 ); ...; cont.push_back( argm )";
- cols["v1_push_back"] = "push_back( cont )( arg1 )...( argm )";
- cols["v2_put"] = "v2::put( cont )( arg1 )...( argm )";
- //cols["v2_delay_put"] = "cont | v2::_put( arg1 )...( argm )";
- cols["v2_csv_put"] = "cont | v2::csv_put( cont, args )";
- cols["v2_delay_csv_put"] = "cont | v2::delay_csv_put( v2::ref::csv_array( args... ) )";
- cols["v1_list_of"] = "list_of( arg1 )...( argm )";
- cols["v2_deque"] = "v2::deque<T>( arg1 )...( argm )";
- cols["v2_csv_deque"] = "v2::csv_deque( args... )";
- cols["v1_cref_list_of"] = "cref_list_of<m>( arg1 )...( argm )";
- cols["v2_ref_array"] = "v2::ref::array( arg1 )...( argm )";
- cols["v2_ref_csv_array"] = "v2::ref::csv_array( args...)";
+ cols["stl_push_back"] = "cont.push_back( arg1 ); ...; cont.push_back( argm )";
+ cols["v1_push_back"] = "push_back( cont )( arg1 )...( argm )";
+ cols["v2_put"] = "v2::put( cont )( arg1 )...( argm )";
+ cols["v2_delay_put_for_each"] = "cont | v2::_delay_put.for_each( v2::csv_deque( args... ) )";
+ cols["v2_csv_put"] = "cont | v2::csv_put( cont, args )";
+ cols["v2_delay_csv_put"] = "cont | v2::delay_csv_put( args... )";
+ cols["v1_list_of"] = "list_of( arg1 )...( argm )";
+ cols["v2_deque"] = "v2::deque<T>( arg1 )...( argm )";
+ cols["v2_csv_deque"] = "v2::csv_deque( args... )";
+ cols["v1_cref_list_of"] = "cref_list_of<m>( arg1 )...( argm )";
+ cols["v2_ref_array"] = "v2::ref::array( arg1 )...( argm )";
+ cols["v2_ref_csv_array"] = "v2::ref::csv_array( args...)";
 
     boost::format fn("%1% : %|30t|%2%\n");
     boost::format title("[%|=90|]\n");
@@ -265,18 +265,18 @@
 
     std::map<str_, str_> defs;
     boost::format fstat("%1% value of %1% * var_scaled, over k repetitions");
- defs["T"] = "std::vector<int>";
- defs["n"] = "Control a number of loops";
- defs["k"] = "Control a number of loops";
- defs["args..."] = "list of arguments, each of type T and max size ";
- defs["args..."] += ( boost::format("%1%") % T_size ).str();
- defs["var"] = "time to eval method(args...) n times";
- defs["var_scaled"] = ( boost::format("%1% * var") % scale_factor ).str();
- defs["m"] = "size(args...)";
- defs["min"] = ( fstat % "min" ).str();
- defs["average"] = ( fstat % "average" ).str();
- defs["min"] = ( fstat % "max" ).str();
- defs["cumulated"] = ( fstat % "cumulate" ).str();
+ defs["T"] = "std::vector<int>";
+ defs["n"] = "Control a number of loops";
+ defs["k"] = "Control a number of loops";
+ defs["args..."] = "list of arguments, each of type T and max size ";
+ defs["args..."] += ( boost::format("%1%") % T_size ).str();
+ defs["var"] = "time to eval method(args...) n times";
+ defs["var_scaled"] = ( boost::format("%1% * var") % scale_factor ).str();
+ defs["m"] = "size(args...)";
+ defs["min"] = ( fstat % "min" ).str();
+ defs["average"] = ( fstat % "average" ).str();
+ defs["min"] = ( fstat % "max" ).str();
+ defs["cumulated"] = ( fstat % "cumulate" ).str();
 
     str_ notation = ( title % "Notation").str()
         + (fn % "T" % defs["T"]).str()
@@ -303,6 +303,7 @@
         methods.push_back( "v1_push_back" );
         methods.push_back( "v2_put" );
         methods.push_back( "v2_csv_put" );
+ methods.push_back( "v2_delay_put_for_each" );
         methods.push_back( "v2_delay_csv_put" );
 
         methods.push_back( "v1_list_of" );

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-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -19,10 +19,10 @@
 #include <libs/assign/v2/tutorial.h>
 
 // Speed -- CPP0x required
-//#include <fstream>
-//#include <libs/assign/v2/speed/test.h>
+#include <fstream>
+#include <libs/assign/v2/speed/test.h>
 
-int main (int argc, char * const argv[])
+int main (int argc, char * const argv[])
 {
 
     // Do not put libs/assign/v2/test/unit_testing in this project
@@ -75,11 +75,11 @@
     {
         //tutorial_assign_v2::run();
     }
- {/*
+ {
         using namespace speed_assign_v2;
         std::ofstream ofs("assign_v2_speed_test");
         speed_assign_v2::test(ofs);
- */}
+ }
 
     return 0;
 

Modified: sandbox/assign_v2/libs/assign/v2/test/deque.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/deque.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/deque.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -7,7 +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 <libs/assign/v2/test/deque/csv_deque.h>
+#include <libs/assign/v2/test/deque/csv_deque_basic.h>
+#include <libs/assign/v2/test/deque/csv_deque_ext.h>
 #include <libs/assign/v2/test/deque/deque.h>
 
 namespace test_assign_v2{
@@ -16,7 +17,8 @@
     void test()
     {
         xxx_deque::test();
- xxx_csv_deque::test();
+ xxx_csv_deque_basic::test();
+ xxx_csv_deque_ext::test();
     }
 
 }// xxx_deque

Modified: sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,119 +1 @@
-////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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 <string>
-#include <utility>
-#include <boost/array.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/assign/v2/include/csv_deque.hpp>
-#include <boost/assign/v2/include/deque.hpp>
-#include <boost/assign/v2/support/config/check.hpp>
-#include <boost/range/algorithm/equal.hpp>
-#include <libs/assign/v2/test/deque/csv_deque.h>
-
-namespace test_assign_v2{
-namespace xxx_deque{
-namespace xxx_csv_deque{
-
- void test()
- {
- namespace as2 = boost::assign::v2;
- {
- //[test_csv_deque1
- typedef as2::result_of::csv_deque<const char[2]>::type C1;
- typedef as2::result_of::deque<char*>::type result1_;
- typedef as2::result_of::csv_deque<std::string>::type C2;
- typedef as2::result_of::deque<std::string>::type result2_;
-
- BOOST_MPL_ASSERT(( boost::is_same<C1, result1_> ));
- BOOST_MPL_ASSERT(( boost::is_same<C2, result2_> ));
-
- C1 deque1 = as2::csv_deque( "x", "y", "z" );
- C2 deque2 = as2::csv_deque<std::string>( "x", "y", "z" );
-
- std::deque<std::string> benchmark;
- benchmark.push_back( "x" );
- benchmark.push_back( "y" );
- benchmark.push_back( "z" );
-
- BOOST_ASSIGN_V2_CHECK( boost::range::equal( benchmark, deque1 ) );
- BOOST_ASSIGN_V2_CHECK( boost::range::equal( benchmark, deque2 ) );
- //]
- }
- {
- //[test_csv_deque2
- typedef std::string month_; typedef int days_;
- typedef std::pair<month_, days_> t_;
-
- BOOST_ASSIGN_V2_CHECK(
- boost::range::equal(
- as2::csv_deque<t_, 2>( "jan", 31, "feb", 28, "mar", 31 ),
- as2::csv_deque( t_("jan", 31), t_("feb", 28), t_("mar", 31 ) )
- )
- );
- //]
- }
- {
- //[test_csv_deque3
- typedef std::string T;
- typedef as2::result_of::csv_deque<T>::type C;
-
- BOOST_MPL_ASSERT((
- boost::is_same<C, as2::result_of::deque<std::string>::type>
- ));
-
- C deque = as2::csv_deque<T>( "x", "y", "z" );
-
- std::deque<std::string> benchmark;
- benchmark.push_back( "x" );
- benchmark.push_back( "y" );
- benchmark.push_back( "z" );
-
- BOOST_ASSIGN_V2_CHECK( boost::range::equal( benchmark, deque ) );
- //]
- }
- {
- //[test_csv_deque4
- typedef as2::result_of::csv_deque<int>::type C;
-
- BOOST_MPL_ASSERT(( boost::is_same<C, as2::result_of::deque<int>::type> ));
-
- C series1 = as2::csv_deque( 0, 1, 1, 2, 3, 5, 8 );
-
- std::deque<int> benchmark; benchmark.push_back( 0 );
- benchmark.push_back( 1 ); benchmark.push_back( 1 );
- benchmark.push_back( 2 ); benchmark.push_back( 3 );
- benchmark.push_back( 5 ); benchmark.push_back( 8 );
-
- BOOST_ASSIGN_V2_CHECK( boost::range::equal( benchmark, series1 ) );
-
- C series2 = as2::csv_deque( 0, 1, 1 )( 2 )( 3 )( 5 )( 8 );
-
- BOOST_ASSIGN_V2_CHECK( boost::range::equal( benchmark, series2 ) );
- //]
- }
- {
- //[test_csv_deque_converter
- typedef boost::array<int, 5> C;
- C const& ar = /*<<Notice unqualified>>*/converter(
- as2::csv_deque( 1, 2, 3, 4, 5 )
- );
-
- BOOST_ASSIGN_V2_CHECK(
- boost::range::equal( ar, as2::csv_deque( 1, 2, 3, 4, 5 ) )
- );
- //]
- }
- }
-
-}// xxx_csv_deque
-}// xxx_deque
-}// test_assign_v2
+// TODO remove file

Modified: sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.h
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.h (original)
+++ sandbox/assign_v2/libs/assign/v2/test/deque/csv_deque.h 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,23 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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_DEQUE_CSV_DEQUE_ER_2010_H
-#define LIBS_ASSIGN_V2_TEST_DEQUE_CSV_DEQUE_ER_2010_H
-
-namespace test_assign_v2{
-namespace xxx_deque{
-namespace xxx_csv_deque{
-
- void test();
-
-}// xxx_csv_deque
-}// xxx_deque
-}// test_assign_v2
-
-#endif // LIBS_ASSIGN_V2_TEST_DEQUE_CSV_DEQUE_ER_2010_H
+// TODO remove file

Modified: sandbox/assign_v2/libs/assign/v2/test/option/data.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/data.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/data.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -15,7 +15,11 @@
 #include <boost/array.hpp>
 #include <boost/assign/v2/deque.hpp>
 #include <boost/assign/v2/option/data.hpp>
+#include <boost/assign/v2/interpreter/csv/csv_basic.hpp>
+#include <boost/assign/v2/include/csv_deque.hpp>
+#include <boost/assign/v2/include/csv_put.hpp>
 #include <boost/assign/v2/include/put.hpp>
+#include <boost/assign/v2/include/deque.hpp>
 #include <boost/assign/v2/support/config/check.hpp>
 
 #include <boost/function.hpp>
@@ -70,7 +74,7 @@
 
             BOOST_ASSIGN_V2_CHECK(
                 boost::range::equal(
- as2::csv(
+ csv(
                         as2::deque<int>( as2::_nil ) % _data,
                         1, 2, 3, 4, 5
                     ),

Modified: sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -11,12 +11,14 @@
 #include <string>
 #include <cmath>
 #include <list>
-#include <boost/assign/v2/support/config/check.hpp>
-#include <boost/assign/v2/include/csv.hpp>
+#include <boost/assign/v2/include/csv_basic.hpp>
+#include <boost/assign/v2/include/csv_deque.hpp>
+#include <boost/assign/v2/include/csv_put_ext.hpp>
+#include <boost/assign/v2/include/deque.hpp>
 #include <boost/assign/v2/include/put.hpp>
-#include <boost/assign/v2/deque.hpp>
 #include <boost/assign/v2/option/data.hpp>
 #include <boost/assign/v2/option/modifier/mapped.hpp>
+#include <boost/assign/v2/support/config/check.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/mpl/apply.hpp>

Modified: sandbox/assign_v2/libs/assign/v2/test/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -7,10 +7,10 @@
 // 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/csv_put.h>
+#include <libs/assign/v2/test/put/csv_put_basic.h>
+#include <libs/assign/v2/test/put/csv_put_ext.h>
 #include <libs/assign/v2/test/put/delay_csv_put.h>
 #include <libs/assign/v2/test/put/delay_put.h>
-#include <libs/assign/v2/test/put/ptr.h>
 #include <libs/assign/v2/test/put/put.h>
 #include <libs/assign/v2/test/put.h>
 
@@ -19,10 +19,10 @@
 
     void test(){
 
- xxx_csv_put::test();
- xxx_delay_csv_put::test(); // TODO
+ xxx_csv_put_basic::test();
+ xxx_csv_put_ext::test();
+ xxx_delay_csv_put::test();
         xxx_delay_put::test();
- xxx_ptr::test();
         xxx_put::test();
 
     }

Modified: sandbox/assign_v2/libs/assign/v2/test/put/csv_put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/csv_put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/csv_put.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,222 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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 <bitset>
-#include <deque>
-#include <map>
-#include <list>
-#include <queue>
-#include <set>
-#include <string>
-#include <vector>
-
-#define BOOST_ASSIGN_V2_LIMIT_CSV_ARITY 24
-
-#include <boost/assign/v2/include/csv_deque.hpp>
-#include <boost/assign/v2/include/csv_put.hpp>
-#include <boost/assign/v2/support/config/check.hpp>
-#include <boost/assign/v2/support/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/support/traits.hpp>
-#include <boost/multi_array.hpp>
-#include <boost/numeric/conversion/bounds.hpp>
-#include <boost/range/algorithm/equal.hpp>
-#include <boost/range/algorithm_ext/iota.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/tuple/tuple.hpp>
-#include <boost/unordered_map.hpp>
-#include <boost/unordered_set.hpp>
-#include <boost/variant.hpp>
-#include <libs/assign/v2/test/put/put.h>
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_csv_put{
-
- void test(){
-
- namespace as2 = boost::assign::v2;
- // STL
- {
- //[test_csv_put1
- std::list<int> seq; as2::csv_put( seq, 1, 2, 3, 4, 5 );
- std::queue<int> adapter; as2::csv_put( adapter, 1, 2, 3, 4, 5 );
- boost::array<int, 5> array; as2::csv_put( array, 1, 2, 3, 4, 5 );
- std::set<int> assoc; as2::csv_put( assoc, 1, 2, 3, 4, 5 );
- //]
-
- std::vector<int> benchmark( 5 ); benchmark[0] = 1;
- benchmark[1] = 2; benchmark[2] = 3;
- benchmark[3] = 4; benchmark[4] = 5;
-
- BOOST_ASSIGN_V2_CHECK( boost::range::equal( benchmark, seq ) );
- BOOST_ASSIGN_V2_CHECK( boost::range::equal( benchmark, array ) );
- BOOST_ASSIGN_V2_CHECK( adapter.front() == 1 );
- BOOST_ASSIGN_V2_CHECK( adapter.back() == 5 );
- BOOST_ASSIGN_V2_CHECK( assoc.count( 1 ) == 1 );
- BOOST_ASSIGN_V2_CHECK( assoc.count( 5 ) == 1 );
- }
- // SEQUENCE
- {
- //[test_csv_put2
- typedef std::string str_;
- typedef std::bitset<3> number;
- std::vector<number> range_3bit;
-
- // The significance of this example comes from:
- // Expression Valid
- // number( "011" ) No
- // number( str_( "011" ) ) Yes
- // range_3bit.push_back( str_( "011" ) ) No
-
- as2::csv_put<1, /*<<Required>>*/str_>(
- range_3bit
- , "000", "001", "010", "011", "100", "101", "110", "111"
- );
-
- for(unsigned i = 0; i < range_3bit.size(); i++)
- {
- BOOST_ASSIGN_V2_CHECK( range_3bit[i].to_ulong() == i );
- }
- //]
- }
- {
- //[test_csv_put3
- typedef const char state_ [3]; typedef int code_;
- state_ ct = "CT", nj = "NJ", ny = "NY";
-
-//<-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
- typedef std::tuple<state_/*<<Notice the reference>>*/&, code_> data_;
-//<-
-#else
- typedef boost::tuple<state_&, code_> data_;
-#endif
-//->
- std::deque< data_ > region;
-
- as2::csv_put<2>(
- region,
- ny, 212, ny, 718, ny, 516, ny, 914,
- nj, 210, nj, 908, nj, 609,
- ct, 203
- );
-
-//<-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
- BOOST_ASSIGN_V2_CHECK( std::get<0>( region.front() ) == ny );
- BOOST_ASSIGN_V2_CHECK( std::get<1>( region.back() ) == 203 );
- BOOST_ASSIGN_V2_CHECK( std::get<1>( region.front() ) == 212 );
- BOOST_ASSIGN_V2_CHECK( std::get<0>( region.back() ) == ct );
-//<-
-#endif
-//->
- //]
-#if! BOOST_ASSIGN_V2_ENABLE_CPP0X
- BOOST_ASSIGN_V2_CHECK( boost::get<0>( region.front() ) == ny );
- BOOST_ASSIGN_V2_CHECK( boost::get<1>( region.back() ) == 203 );
- BOOST_ASSIGN_V2_CHECK( boost::get<1>( region.front() ) == 212 );
- BOOST_ASSIGN_V2_CHECK( boost::get<0>( region.back() ) == ct );
-#endif
- }
- //SET
- {
- //[test_csv_put4
- typedef std::string word_;
- typedef boost::unordered_set<word_> C;
- C set, benchmark;
-
- as2::csv_put( set, "foo", "bar", "baz" );
-
- benchmark.insert( "foo" );
- benchmark.insert( "bar" );
- benchmark.insert( "baz" );
- BOOST_ASSIGN_V2_CHECK(
- boost::range::equal( set, benchmark )
- );
- //]
- }
- // MAP
- {
- //[test_csv_put5
- std::map<std::string, int> q1;
- as2::csv_put<2>( q1, "jan", 31, "feb", 28, "mar", 31 );
-
- BOOST_ASSIGN_V2_CHECK( q1["jan"] == 31 );
- BOOST_ASSIGN_V2_CHECK( q1["feb"] == 28 );
- BOOST_ASSIGN_V2_CHECK( q1["mar"] == 31 );
- //]
- }
- // MULTI-ARRAY
- {
- //[test_csv_put6
- typedef boost::multi_array<int, 3> array3_;
- typedef array3_::size_type size_;
-
- typedef const size_ dim_;
- dim_ dim1 = 2, dim2 = 3, dim3 = 4;
-
- array3_ array3( boost::extents[dim1][dim2][dim3] );
-
- as2::csv_put(
- array3,
- 0, 1, 2, 3,
- 4, 5, 6, 7,
- 8, 9, 10, 11,
-
- 12, 13, 14, 15,
- 16, 17, 18, 19,
- 20, 21, 22, 23
- );
-
- int i = 0;
- for( size_ i1 = 0; i1 < dim1; i1++ )
- {
- for( size_ i2 = 0; i2 < dim2; i2++ )
- {
- for( size_ i3 = 0; i3 < dim3; i3++ )
- {
- BOOST_ASSIGN_V2_CHECK( array3[ i1 ][ i2 ][ i3 ] == i++ );
- }
- }
- }
-
- //]
-
- typedef boost::multi_array_types::index_range range_;
- array3_::array_view<2>::type view
- = array3[ boost::indices[1][range_(0,2)][range_(1,3)] ];
-
- as2::csv_put(
- view,
- 99, 98,
- 97, 96
- );
-
- BOOST_ASSIGN_V2_CHECK(
- boost::range::equal(
- as2::csv_deque(
- view[0][0], view[0][1],
- view[1][0], view[1][1]
- ),
- as2::csv_deque(
- 99, 98,
- 97, 96
- )
- )
- );
-
- }
- }// test()
-
-}// xxx_csv_put
-}// xxx_put
-}// xxx_test_assign
+// TODO remove file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,106 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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 <string>
-#include <utility>
-#include <boost/assign/v2/support/config/check.hpp>
-#include <boost/assign/v2/include/csv_put.hpp>
-#include <boost/assign/v2/include/put.hpp>
-#include <boost/assign/v2/support/pp/ignore.hpp>
-#include <boost/ptr_container/ptr_array.hpp>
-#include <boost/ptr_container/ptr_deque.hpp>
-#include <boost/ptr_container/ptr_list.hpp>
-#include <boost/ptr_container/ptr_map.hpp>
-#include <boost/ptr_container/ptr_set.hpp>
-#include <boost/ptr_container/ptr_unordered_set.hpp>
-#include <boost/ptr_container/ptr_unordered_map.hpp>
-#include <boost/ptr_container/ptr_vector.hpp>
-#include <libs/assign/v2/test/put/ptr.h>
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_ptr{
-
- void test(){
-
- namespace as2 = boost::assign::v2;
-
- // ARRAY
- {
- //[test_csv_put_ptr1
- typedef int T;
- T x = 1, y = 2, z = 3; boost::ptr_array<T, 3> cont;
- /*<<Calls `assoc[i++] = new T( t )` for `i = 0` and `t`[^ = ] `x`, `y`, and `z`>>*/as2::csv_put( cont, x, y, z );
-
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- // SEQUENCE
- {
- //[test_csv_put_ptr2
- typedef int T; T x = 1, y = 2, z = 0; boost::ptr_deque<T> cont;
- /*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/as2::csv_put( cont, x, y, z );
-
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
- //]
- }
- // MAP
- {
- //[test_put_ptr1
- typedef std::string word_;
- const char x[] = "foo";
- const char y[4] = { 'b', 'a', 'r', '\0' };
- word_ z = "***baz";
- boost::ptr_unordered_map<int, word_> map;
-
- as2::put( map )( 1, x, 3 )( 2, y )( 3, z, 3, 3 )( 4, "qux" );
-
- assert( map[1] == "foo" ); assert( map[2] == "bar" );
- assert( map[3] == "baz" ); assert( map[4] == "qux" );
- //]
- }
- {
- //[test_csv_put_ptr3
- typedef std::string month_; typedef int days_;
- boost::ptr_map<month_, days_> q1;
-
- as2::csv_put<2>( q1, "jan", 31, "feb", 28, "mar", 31 );
-
- BOOST_ASSIGN_V2_CHECK( q1["jan"] == 31 );
- BOOST_ASSIGN_V2_CHECK( q1["feb"] == 28 );
- BOOST_ASSIGN_V2_CHECK( q1["mar"] == 31 );
- //]
- }
- // SET
- {
- //[test_csv_put_ptr4
- typedef std::string T; boost::ptr_set<T> assoc;
- T x = "isomer", y = "ephemeral", z = "prosaic";
- as2::csv_put( assoc, x, z, y );
-
- BOOST_ASSIGN_V2_CHECK( assoc.count( x ) == 1 );
- BOOST_ASSIGN_V2_CHECK( assoc.count( z ) == 1 );
- //]
- }
- {
- //[test_csv_put_ptr5
- boost::ptr_unordered_set<std::string> set;
- as2::csv_put( set, "foo", "bar", "baz" );
-
- BOOST_ASSIGN_V2_CHECK( set.count( "foo" ) == 1 );
- BOOST_ASSIGN_V2_CHECK( set.count( "baz" ) == 1 );
- //]
- }
- }// test
-
-}// xxx_ptr
-}// xxx_put
-}// xxx_test_assign
+// TODO remove file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/ptr.h
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/ptr.h (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/ptr.h 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -1,23 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2011 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_PTR_ER_2010_H
-#define LIBS_ASSIGN_V2_TEST_PUT_PTR_ER_2010_H
-
-namespace test_assign_v2{
-namespace xxx_put{
-namespace xxx_ptr{
-
- void test();
-
-}// xxx_ptr
-}// xxx_put
-}// xxx_test_assign
-
-#endif // LIBS_ASSIGN_V2_TEST_PUT_PTR_ER_2010_H
+// TODO remove file

Modified: sandbox/assign_v2/libs/assign/v2/test/put/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/put.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -21,6 +21,7 @@
 #include <boost/range/begin.hpp>
 #include <boost/range/end.hpp>
 #include <boost/tuple/tuple.hpp>
+#include <boost/ptr_container/ptr_unordered_map.hpp>
 #include <boost/unordered_map.hpp>
 #include <boost/unordered_set.hpp>
 #include <boost/variant.hpp>
@@ -95,6 +96,25 @@
             BOOST_ASSIGN_V2_CHECK( fabs( ragged[2].front() + 99.99 ) < eps );
             BOOST_ASSIGN_V2_CHECK( fabs( ragged[2].back() + 99.99 ) < eps );
         }
+
+ // Pointer containers
+
+ // MAP
+ {
+ //[test_put4
+ typedef std::string word_;
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
+ boost::ptr_unordered_map<int, word_> map;
+
+ as2::put( map )( 1, x, 3 )( 2, y )( 3, z, 3, 3 )( 4, "qux" );
+
+ assert( map[1] == "foo" ); assert( map[2] == "bar" );
+ assert( map[3] == "baz" ); assert( map[4] == "qux" );
+ //]
+ }
+
     }// test()
 
 }// xxx_put

Modified: sandbox/assign_v2/libs/assign/v2/test/unit_testing/deque.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/unit_testing/deque.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/unit_testing/deque.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -12,7 +12,8 @@
 #include <boost/test/test_tools.hpp>
 #define BOOST_ASSIGN_V2_CHECK( p ) BOOST_CHECK( p )
 
-#include <libs/assign/v2/test/deque/csv_deque.cpp>
+#include <libs/assign/v2/test/deque/csv_deque_basic.cpp>
+#include <libs/assign/v2/test/deque/csv_deque_ext.cpp>
 #include <libs/assign/v2/test/deque/deque.cpp>
 
 #include <boost/test/unit_test.hpp>
@@ -23,7 +24,8 @@
     using namespace test_assign_v2;
     {
         namespace ns = xxx_deque;
- test->add( BOOST_TEST_CASE( &ns::xxx_csv_deque::test ) );
+ test->add( BOOST_TEST_CASE( &ns::xxx_csv_deque_basic::test ) );
+ test->add( BOOST_TEST_CASE( &ns::xxx_csv_deque_ext::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_deque::test ) );
     }
     return test;

Modified: sandbox/assign_v2/libs/assign/v2/test/unit_testing/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/unit_testing/put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/unit_testing/put.cpp 2011-06-06 21:23:54 EDT (Mon, 06 Jun 2011)
@@ -13,8 +13,8 @@
 #include <boost/test/test_tools.hpp>
 #define BOOST_ASSIGN_V2_CHECK( p ) BOOST_CHECK( p )
 
-#include <libs/assign/v2/test/put/csv_put.cpp>
-#include <libs/assign/v2/test/put/ptr.cpp>
+#include <libs/assign/v2/test/put/csv_put_basic.cpp>
+#include <libs/assign/v2/test/put/csv_put_ext.cpp>
 #include <libs/assign/v2/test/put/put.cpp>
 #include <libs/assign/v2/test/put/delay_csv_put.cpp>
 #include <libs/assign/v2/test/put/delay_put.cpp>
@@ -27,9 +27,9 @@
     using namespace test_assign_v2;
     {
         namespace ns = xxx_put;
+ test->add( BOOST_TEST_CASE( &ns::xxx_csv_put_basic::test ) );
+ test->add( BOOST_TEST_CASE( &ns::xxx_csv_put_ext::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_put::test ) );
- test->add( BOOST_TEST_CASE( &ns::xxx_ptr::test ) );
- test->add( BOOST_TEST_CASE( &ns::xxx_csv_put::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_delay_put::test ) );
         test->add( BOOST_TEST_CASE( &ns::xxx_delay_csv_put::test ) );
     }


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