Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70936 - in sandbox/assign_v2: boost/assign/v2 boost/assign/v2/conversion boost/assign/v2/deque boost/assign/v2/detail boost/assign/v2/detail/functor boost/assign/v2/detail/traits boost/assign/v2/detail/traits/aux_ boost/assign/v2/include boost/assign/v2/include/logical_and boost/assign/v2/include/macro boost/assign/v2/interpreter boost/assign/v2/option boost/assign/v2/option/modifier boost/assign/v2/pipe boost/assign/v2/ref/array boost/assign/v2/ref/aux_/list boost/assign/v2/ref/include libs/assign/v2 libs/assign/v2/src libs/assign/v2/test libs/assign/v2/test/option libs/assign/v2/test/put libs/assign/v2/test/unit_testing
From: erwann.rogard_at_[hidden]
Date: 2011-04-03 11:10:25


Author: e_r
Date: 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
New Revision: 70936
URL: http://svn.boost.org/trac/boost/changeset/70936

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp | 4
   sandbox/assign_v2/boost/assign/v2/csv.hpp | 51 +--------------
   sandbox/assign_v2/boost/assign/v2/deque/deque.hpp | 2
   sandbox/assign_v2/boost/assign/v2/detail/functor.hpp | 1
   sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp | 2
   sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp | 21 ++++--
   sandbox/assign_v2/boost/assign/v2/detail/speed.hpp | 2
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp | 8 ++
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp | 15 ++++
   sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp | 21 +++---
   sandbox/assign_v2/boost/assign/v2/include.hpp | 33 ---------
   sandbox/assign_v2/boost/assign/v2/include/_chain.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_convert.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_csv_put.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_data.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_insert.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_push.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/csv.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/include/macro.hpp | 16 ----
   sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp | 16 ----
   sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp | 16 ----
   sandbox/assign_v2/boost/assign/v2/include/put.hpp | 2
   sandbox/assign_v2/boost/assign/v2/include/ref.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/interpreter.hpp | 2
   sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp | 28 ++++----
   sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp | 8 +-
   sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp | 21 ++++-
   sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp | 3
   sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp | 1
   sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp | 108 ++++++++++++++++-----------------
   sandbox/assign_v2/boost/assign/v2/option/list.hpp | 89 ++++++++++++++++++++++-----
   sandbox/assign_v2/boost/assign/v2/option/modifier.hpp | 3
   sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp | 16 +++-
   sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp | 11 --
   sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp | 26 -------
   sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp | 7 -
   sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp | 3
   sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp | 2
   sandbox/assign_v2/boost/assign/v2/pipe.hpp | 2
   sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp | 19 ++++-
   sandbox/assign_v2/boost/assign/v2/put.hpp | 129 ---------------------------------------
   sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp | 6
   sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp | 2
   sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp | 2
   sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp | 15 ----
   sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp | 15 ----
   sandbox/assign_v2/libs/assign/v2/src/main.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/conversion.cpp | 10 +-
   sandbox/assign_v2/libs/assign/v2/test/csv.cpp | 23 ++----
   sandbox/assign_v2/libs/assign/v2/test/option.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/option/data.cpp | 21 +++---
   sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp | 21 +++--
   sandbox/assign_v2/libs/assign/v2/test/option/list.cpp | 7 -
   sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp | 10 +-
   sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp | 9 +
   sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp | 25 ++++---
   sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp | 76 +++++++++++-----------
   sandbox/assign_v2/libs/assign/v2/test/put/put.cpp | 126 ++++++++++++++++++++++----------------
   sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp | 32 ---------
   sandbox/assign_v2/libs/assign/v2/tutorial.cpp | 15 ++--
   68 files changed, 476 insertions(+), 871 deletions(-)

Modified: sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,7 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_CONVERSION_CONVERT_ER_2010_HPP
 #define BOOST_ASSIGN_V2_CONVERSION_CONVERT_ER_2010_HPP
 #include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/range/algorithm/for_each.hpp>
 
 namespace boost{
@@ -73,7 +73,7 @@
 }//result_of
 
 template<typename C>
-conversion_aux::convert_adapter<C> _convert()/*<-*/
+conversion_aux::convert_adapter<C> convert()/*<-*/
 {
     return conversion_aux::convert_adapter<C>();
 }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/

Modified: sandbox/assign_v2/boost/assign/v2/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/csv.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -30,48 +30,12 @@
 namespace boost{
 namespace assign{
 namespace v2{
-namespace csv_aux{
-
- template<typename F, typename T>
- struct unary_result
- {
- static F f;
- static T t;
-#ifdef BOOST_MSVC
- BOOST_TYPEOF_NESTED_TYPEDEF_TPL(nested, f( t ) )
- typedef typename nested::type type;
-#else
- typedef BOOST_TYPEOF_TPL( f( t ) ) type;
-#endif
-
- };
-
- template<typename F>
- struct result
- {
-
- typedef F state_;
-
- template<typename Vec>
- struct apply : ::boost::mpl::fold<
- Vec,
- state_,
- unary_result< ::boost::mpl::_1, ::boost::mpl::_2>
- >{};
-
- };
-
-}// csv_aux
 //[syntax_csv
 namespace result_of{
 
- template<typename F, typename V>
+ template<typename F>
     struct csv/*<-*/
- : ::boost::mpl::apply1<
- csv_aux::result<F>,
- V
- >
- {}/*->*/;
+ { typedef F type; }/*->*/;
 
 }// nth_result_of
 //<-
@@ -88,8 +52,7 @@
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename F, typename T, typename... Args>
- typename result_of::csv<F const&,
- typename ::boost::mpl::detail::variadic_vector<T, Args...>::type
+ typename result_of::csv<F const&>::type
>::type
     csv( F const& functor, T&& t, Args&&... args )/*<-*/
     {
@@ -103,9 +66,7 @@
 #define BOOST_ASSIGN_V2_MACRO3(z, N, data)\
 \
     template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- typename result_of::csv<F const&, \
- ::boost::mpl::vector<BOOST_PP_ENUM(N, BOOST_ASSIGN_V2_MACRO1, &)>\
- >::type\
+ typename result_of::csv<F const&>::type\
     csv( \
         F const& functor\
         BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(N, T, & _)\
@@ -115,9 +76,7 @@
     }\
 \
     template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- typename result_of::csv<F const&,\
- ::boost::mpl::vector<BOOST_PP_ENUM(N, BOOST_ASSIGN_V2_MACRO1, const &)>\
- >::type\
+ typename result_of::csv<F const&>::type\
     csv( \
         F const& functor\
         BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(N, T, const & _)\

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -173,7 +173,7 @@
 
     template<typename T>
     typename result_of::deque<T>::type
- deque( keyword_aux::nil )/*<-*/
+ deque( nil_ )/*<-*/
     {
         return typename result_of::deque<T>::type();
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,6 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_DETAIL_FUNCTOR_ER_2010_HPP
 #define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_ER_2010_HPP
 #include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+#include <boost/assign/v2/detail/functor/iterate.hpp>
 #include <boost/assign/v2/detail/functor/pair.hpp>
 #include <boost/assign/v2/detail/functor/value.hpp>
 

Modified: sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -28,7 +28,7 @@
 //syntax_detail_functor_value
 namespace functor_aux{
 
- template<typename T = keyword_aux::nil>
+ template<typename T = nil_>
     class value/*<-*/
 #if !BOOST_ASSIGN_V2_ENABLE_CPP0X
     : public functor_aux::crtp_unary_and_up<

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -16,23 +16,30 @@
 namespace v2{
 //[syntax_detail_keyword
 namespace keyword_aux{
-
     struct ignore{
         ignore(){}
         template<typename Anything> ignore(Anything){}
     };
+ struct element/*<-*/{}/*->*/;
     struct key/*<-*/{}/*->*/;
     struct nil/*<-*/{}/*->*/;
     struct use_default/*<-*/{}/*->*/;
     struct value/*<-*/{}/*->*/;
 
-}// keyword_aux
+}//keyword_aux
+ typedef keyword_aux::ignore ignore_;
+ typedef keyword_aux::element element_;
+ typedef keyword_aux::key key_;
+ typedef keyword_aux::nil nil_;
+ typedef keyword_aux::use_default use_default_;
+ typedef keyword_aux::value value_;
 /*<-*/namespace{/*->*/
- const keyword_aux::ignore _ignore/*<-*/ = keyword_aux::ignore()/*->*/;
- const keyword_aux::key _key/*<-*/ = keyword_aux::key()/*->*/;
- const keyword_aux::nil _nil/*<-*/ = keyword_aux::nil()/*->*/;
- const keyword_aux::use_default _use_default/*<-*/ = keyword_aux::use_default()/*->*/;
- const keyword_aux::value _value/*<-*/ = keyword_aux::value()/*->*/;
+ const ignore_ _ignore/*<-*/ = ignore_()/*->*/;
+ const element_ _element/*<-*/ = element_()/*->*/;
+ const key_ _key/*<-*/ = key_()/*->*/;
+ const nil_ _nil/*<-*/ = nil_()/*->*/;
+ const use_default_ _use_default/*<-*/ = use_default_()/*->*/;
+ const value_ _value/*<-*/ = value_()/*->*/;
 /*<-*/}/*->*/
 //]
 }// v2

Modified: sandbox/assign_v2/boost/assign/v2/detail/speed.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/speed.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/speed.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -21,7 +21,7 @@
 #include <boost/assign/list_inserter.hpp>
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/assign/v2/deque.hpp>
 #include <boost/assign/v2/pipe/csv_put.hpp>
 #include <boost/assign/v2/ref/array/array.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -43,6 +43,14 @@
     // http://www.boost.org/doc/libs/release/libs/circular_buffer/index.html
     template<typename T, typename Alloc> class circular_buffer;
 
+namespace detail{
+namespace multi_array{
+
+ struct multi_array_base;
+
+}// multi_array
+}// detail
+
    template <
         class Key,
         class Hash,

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -15,6 +15,7 @@
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/seq.hpp>
 #include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/is_base_of.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
 
 namespace boost{
@@ -42,6 +43,13 @@
     template<typename C>
     struct value_is_map : ::boost::mpl::false_{};
 
+ typedef ::boost::detail::multi_array::multi_array_base multi_array_base_;
+
+ template<typename C>
+ struct value_is_multi_array
+ : boost::is_base_of<multi_array_base_, C>
+ {};
+
 }// container_aux
 
 #define BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORY(SeqPar, IsCategory, Identifier, SeqArg)\
@@ -69,7 +77,7 @@
 /**/
     
 BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORIES(
- (typename T)( std::size_t sz), (is_array),
+ (typename T)( std::size_t sz ), (is_array),
     boost::array, (T)(sz)
 )
 BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORIES(
@@ -109,6 +117,11 @@
     struct value_key{ typedef typename C::key_type type; };
 
     template<
+ typename C // Ptr or value multi-array
+ >
+ struct value_element{ typedef typename C::element type; };
+
+ template<
         typename C // Ptr or value container
>
     struct value_value{ typedef typename C::value_type type; };

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -37,7 +37,7 @@
>
     {};
 
-// DATA-MEMBER
+// ACCESS
 
     template<typename C>
     struct key : through_value_container<value_key, C>{};
@@ -48,22 +48,18 @@
     template<typename C>
     struct value : through_value_container<value_value, C>{};
 
-// STORAGE
+ template<
+ typename C // Multi-array
+ >
+ struct element : through_value_container<value_element, C>{};
 
- template<typename C>
- struct is_ptr_container : ::boost::mpl::not_<
- boost::is_same<C, typename to_value_container<C>::type>
- >{};
-
-// MEMBERS
+// PREDICATE
 
     template<typename C>
     struct has_push_deduced_value
         : through_value_container<value_has_push_deduced_value, C>
     {};
 
-// CATEGORY
-
     template<typename C> struct is_array
         : through_value_container<value_is_array, C>
     {};
@@ -88,6 +84,11 @@
     {};
     
     template<typename C>
+ struct is_ptr_container : ::boost::mpl::not_<
+ boost::is_same<C, typename to_value_container<C>::type>
+ >{};
+
+ template<typename C>
     struct is_sorted
         : through_value_container<value_is_sorted, C>
     {};

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,32 +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_INCLUDE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_ER_2010_HPP
-#include <boost/assign/v2/include/_chain.hpp>
-#include <boost/assign/v2/include/_convert.hpp>
-#include <boost/assign/v2/include/_csv_put.hpp>
-#include <boost/assign/v2/include/_data.hpp>
-#include <boost/assign/v2/include/_insert.hpp>
-#include <boost/assign/v2/include/_iterate.hpp>
-#include <boost/assign/v2/include/_key.hpp>
-#include <boost/assign/v2/include/_mapped.hpp>
-#include <boost/assign/v2/include/_push.hpp>
-#include <boost/assign/v2/include/_push_back.hpp>
-#include <boost/assign/v2/include/_push_front.hpp>
-#include <boost/assign/v2/include/_repeat.hpp>
-#include <boost/assign/v2/include/converter.hpp>
-#include <boost/assign/v2/include/csv.hpp>
-#include <boost/assign/v2/include/csv_deque.hpp>
-#include <boost/assign/v2/include/deque.hpp>
-#include <boost/assign/v2/include/logical_and.hpp>
-#include <boost/assign/v2/include/macro.hpp>
-#include <boost/assign/v2/include/ref.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_chain.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_chain.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__CHAIN_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__CHAIN_ER_2010_HPP
-#include <boost/assign/v2/chain/chain.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__CHAIN_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_convert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_convert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__CONVERT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__CONVERT_ER_2010_HPP
-#include <boost/assign/v2/conversion/convert.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__CONVERT_ER_2010_HPP
+// TODO remove file
\ No newline at end of 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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__CSV_PUT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__CSV_PUT_ER_2010_HPP
-#include <boost/assign/v2/pipe/csv_put.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__CSV_PUT_ER_2010_HPP
\ No newline at end of file
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_data.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_data.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_data.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__DATA_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__DATA_ER_2010_HPP
-#include <boost/assign/v2/option/data_generator.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__DATA_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_insert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_insert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_insert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__INSERT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__INSERT_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__INSERT_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__ITERATE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__ITERATE_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/iterate.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__ITERATE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__MAPPED_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__MAPPED_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/mapped.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__MAPPED_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_push.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_push.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_push.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__PUSH_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__PUSH_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__PUSH_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__PUSH_BACK_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__PUSH_BACK_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__PUSH_BACK_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__PUSH_FRONT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__PUSH_FRONT_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__PUSH_FRONT_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__REPEAT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__REPEAT_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/repeat.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__REPEAT_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_CSV_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_CSV_ER_2010_HPP
-#include <boost/assign/v2/csv.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_CSV_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_LOGICAL_AND_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_ER_2010_HPP
-#include <boost/assign/v2/include/logical_and/chain.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
-#include <boost/assign/v2/chain/logical_and.hpp>
-
-#endif //BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/macro.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/macro.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/macro.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,15 +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_INCLUDE_MACRO_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_MACRO_ER_2010_HPP
-#include <boost/assign/v2/include/macro/modifier.hpp>
-#include <boost/assign/v2/include/macro/std_modifier.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_MACRO_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,15 +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_INCLUDE_MACRO_MODIFIER_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_MACRO_MODIFIER_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/framework.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_MACRO_MODIFIER_ER_2010_HPP
-
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,15 +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_INCLUDE_MACRO_STD_MODIFIER_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_MACRO_STD_MODIFIER_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_MACRO_STD_MODIFIER_ER_2010_HPP
-
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/include/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/put.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,6 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_INCLUDE_PUT_ER_2010_HPP
 #define BOOST_ASSIGN_V2_INCLUDE_PUT_ER_2010_HPP
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 
 #endif // BOOST_ASSIGN_V2_INCLUDE_PUT_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/include/ref.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/ref.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/ref.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_REF_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_REF_ER_2010_HPP
-#include <boost/assign/v2/ref/include.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_REF_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/interpreter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,6 +9,8 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_INTERPRETER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_INTERPRETER_ER_2010_HPP
+#include <boost/assign/v2/interpreter/as_arg_list.hpp>
+#include <boost/assign/v2/interpreter/data_generator.hpp>
 #include <boost/assign/v2/interpreter/crtp.hpp>
 #include <boost/assign/v2/interpreter/modifier.hpp>
 #include <boost/assign/v2/interpreter/replace.hpp>

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -7,8 +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) //
 //////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_INTERPRETER_ADAPTER_CRTP_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INTERPRETER_ADAPTER_CRTP_ER_2010_HPP
+#ifndef BOOST_ASSIGN_V2_INTERPRETER_CRTP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_INTERPRETER_CRTP_ER_2010_HPP
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #include <boost/assign/v2/detail/pp/forward.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
@@ -116,10 +116,10 @@
 
     };
 
- template<typename C, typename F, typename ModifierTag, typename D>
+ template<typename C, typename F, typename MTag, typename D>
     struct ConceptDerivedInterpreter2 : ConceptDerivedInterpreter1<C, D>{
 
- typedef interpreter_aux::interpreter_modifier<ModifierTag> modifier_;
+ typedef interpreter_aux::interpreter_modifier<MTag> modifier_;
 
         BOOST_CONCEPT_USAGE(ConceptDerivedInterpreter2)
         {
@@ -136,17 +136,17 @@
     template<
         typename C // Container,
         , typename F // Data generator
- , typename ModifierTag // Modifier tag
- , typename DataTag // Data tag
+ , typename MTag // Modifier tag
+ , typename DTag // Data tag
         , typename D // Derived
>
     class interpreter_crtp
 //<-
         : public data_gen_holder<F>
- , public modifier_holder<ModifierTag>
+ , public modifier_holder<MTag>
 #if !BOOST_ASSIGN_V2_ENABLE_CPP0X
         , public functor_aux::crtp_unary_and_up<
- interpreter_crtp<C, F, ModifierTag, DataTag, D>,
+ interpreter_crtp<C, F, MTag, DTag, D>,
             ::boost::mpl::always< D const& >
>
 #endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
@@ -160,7 +160,7 @@
         protected:
 
         typedef data_gen_holder<F> data_gen_holder_;
- typedef modifier_holder<ModifierTag> modifier_holder_;
+ typedef modifier_holder<MTag> modifier_holder_;
 //->
 
         public:
@@ -239,7 +239,7 @@
         template<typename T>
         void check_modifier( BOOST_ASSIGN_V2_FORWARD_PARAM(T, t) )const
         {
- typedef ConceptModifier<ModifierTag, DataTag, C,
+ typedef ConceptModifier<MTag, DTag, C,
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
                 T&&
 #else
@@ -259,7 +259,7 @@
             this->modifier.impl(
                 this->derived().container(),
                 std::forward<T>( t ),
- DataTag()
+ DTag()
             );
             return this->derived();
         }
@@ -268,7 +268,7 @@
         result_type modify(T& t)const
         {
             check_modifier( t );
- this->modifier.impl( this->derived().container(), t, DataTag() );
+ this->modifier.impl( this->derived().container(), t, DTag() );
             return this->derived();
         }
 
@@ -276,7 +276,7 @@
         result_type modify(T const& t)const
         {
             check_modifier( t );
- this->modifier.impl( this->derived().container(), t, DataTag() );
+ this->modifier.impl( this->derived().container(), t, DTag() );
             return this->derived();
         }
 
@@ -291,4 +291,4 @@
 }// assign
 }// boost
 
-#endif // BOOST_ASSIGN_V2_INTERPRETER_ADAPTER_CRTP_ER_2010_HPP
+#endif // BOOST_ASSIGN_V2_INTERPRETER_CRTP_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,9 +9,9 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_INTERPRETER_DATA_ER_2010_HPP
 #define BOOST_ASSIGN_V2_INTERPRETER_DATA_ER_2010_HPP
-#include <boost/assign/v2/detail/traits/container.hpp>
 #include <boost/assign/v2/detail/functor/pair.hpp>
 #include <boost/assign/v2/detail/functor/value.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
     
 namespace boost{
 namespace assign{
@@ -20,9 +20,9 @@
 namespace interpreter_aux{
 
     template<
- typename C // Value or pointer-container
- , typename T/*<-*/ = typename v2::container_aux::value<C>::type/*->*/
- , bool is_map/*<-*/ = v2::container_aux::is_map<C>::value/*->*/
+ typename C // Value or pointer-container
+ , typename T
+ , bool is_map
>
     struct deduce_data_generator/*<-*/
     {

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_INTERPRETER_FWD_ER_2010_HPP
 #define BOOST_ASSIGN_V2_INTERPRETER_FWD_ER_2010_HPP
+#include <boost/assign/v2/detail/traits/container.hpp>
 
 namespace boost{
     struct use_default;
@@ -28,7 +29,6 @@
     template<typename Storage, typename Assign> struct plus : Storage{};
 
     // Shortcuts
-
     typedef plus<storage_ptr, assign> ptr;
     typedef plus<storage_ptr, assign_map> ptr_map;
     typedef plus<storage_value, assign> value;
@@ -37,12 +37,23 @@
 }// data_tag
 namespace interpreter_aux{
 
- template<typename C, typename F,
- typename ModifierTag, typename DataTag, typename D>
+ template<
+ typename C // Value or pointer-container
+ , typename T = typename v2::container_aux::value<C>::type
+ , bool is_map = v2::container_aux::is_map<C>::value
+ >
+ struct deduce_data_generator;
+
+ template<typename C> struct deduce_data_tag;
+
+ template<typename C, typename F, typename MTag, typename DTag, typename D>
     class interpreter_crtp;
 
- template<typename Tag>
- struct interpreter_modifier;
+ template<typename Tag> struct interpreter_modifier;
+
+ template<typename Derived> struct replace_data_generator;
+ template<typename Derived> struct replace_modifier_tag;
+ template<typename Derived> struct replace_data_tag;
 
 }// interpreter_aux
 }// v2

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,13 +12,14 @@
 #include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/detail/traits/container.hpp>
 #include <boost/assign/v2/detail/traits/switch.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/option/modifier/insert.hpp>
 #include <boost/assign/v2/option/modifier/iterate.hpp>
 #include <boost/assign/v2/option/modifier/std.hpp>
 #include <boost/concept_check.hpp>
+#include <boost/mpl/apply.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/mpl/if.hpp>
-#include <boost/mpl/apply.hpp>
 #include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/is_same.hpp>
 

Modified: sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,6 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_INTERPRETER_REPLACE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_INTERPRETER_REPLACE_ER_2010_HPP
 #include <boost/assign/v2/detail/pp/ignore.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/mpl/apply.hpp>
 
 namespace boost{

Modified: sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -16,6 +16,7 @@
 #include <boost/assign/v2/interpreter/data_generator.hpp>
 #include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/interpreter/replace.hpp>
+#include <boost/assign/v2/option/list.hpp>
 #include <boost/mpl/apply.hpp>
 
 namespace boost{
@@ -26,18 +27,38 @@
 namespace interpreter_aux{
 
     template<
- typename C // Value or pointer-container
+ typename C // Value or pointer-container
+ , typename F // Functor or keyword
>
- struct deduce_key_generator/*<-*/
+ struct deduce_generator/*<-*/
     {
- typedef typename container_aux::key<C>::type key_;
- typedef functor_aux::value<key_> type;
+ typedef F type;
     }/*->*/;
 
     template<
- typename C // Value or pointer-container
+ typename C // Multi-array
>
- struct deduce_value_generator/*<-*/
+ struct deduce_generator<C, element_>/*<-*/
+ {
+ typedef functor_aux::value<
+ typename container_aux::element<C>::type
+ > type;
+ }/*->*/;
+
+ template<typename C>
+ struct deduce_generator<C, key_>/*<-*/
+ {
+ typedef typename container_aux::key<C>::type key_;
+ typedef functor_aux::value<key_> type;
+ }/*->*/;
+
+ template<typename C>
+ struct deduce_generator<C, use_default_>/*<-*/
+ : deduce_data_generator<C>
+ {}/*->*/;
+
+ template<typename C>
+ struct deduce_generator<C, value_>/*<-*/
     {
         typedef functor_aux::value<
             typename container_aux::value<C>::type
@@ -46,39 +67,21 @@
 
 namespace result_of{
 
- template<typename D, typename C, typename F = keyword_aux::use_default>
+ template<typename D, typename C, typename F = use_default_>
     struct option_data_generator/*<-*/
         : ::boost::mpl::apply1<
             interpreter_aux::replace_data_generator<D>,
- F
- >
- {}/*->*/;
-
- template<typename D, typename C>
- struct option_data_generator<D, C, keyword_aux::key>/*<-*/
- : option_data_generator<
- D, C, typename deduce_key_generator<C>::type
- >
- {}/*->*/;
-
- template<typename D, typename C>
- struct option_data_generator<D, C, keyword_aux::use_default>/*<-*/
- : option_data_generator<
- D, C, typename deduce_data_generator<C>::type
- >
- {}/*->*/;
-
- template<typename D, typename C>
- struct option_data_generator<D, C, keyword_aux::value>/*<-*/
- : option_data_generator<
- D, C, typename deduce_value_generator<C>::type
+ typename deduce_generator<C, F>::type
>
     {}/*->*/;
         
 }// result_of
 
- template<typename F/*<-*/= keyword_aux::ignore/*->*/>
+ template<typename F/*<-*/= ignore_/*->*/>
     struct option_data_generator/*<-*/
+ : option_listable<
+ option_data_generator<F>
+ >
     {
         option_data_generator(){}
         option_data_generator(F f) : f_( f ){}
@@ -90,49 +93,44 @@
         F f_;
     }/*->*/;
 
- template<>
- struct option_data_generator<use_default>/*<-*/
+ template<typename Kwd>
+ struct option_data_generator_helper
     {
- option_data_generator(){}
- option_data_generator(keyword_aux::ignore){}
 
- template<typename C>
- typename deduce_data_generator<C>::type
+ template<typename C>
+ typename deduce_generator<C, Kwd>::type
         data_generator()const
         {
- return typename deduce_data_generator<C>::type();
+ return typename deduce_generator<C, Kwd>::type();
         }
+
+ };
+
+ template<>
+ struct option_data_generator<use_default_>/*<-*/
+ : option_data_generator_helper<use_default_>
+ {
+ option_data_generator(){}
+ option_data_generator(ignore_){}
         
     }/*->*/;
 
     template<>
- struct option_data_generator<keyword_aux::key>/*<-*/
+ struct option_data_generator<key_>/*<-*/
+ : option_data_generator_helper<key_>
     {
         option_data_generator(){}
- option_data_generator(keyword_aux::ignore){}
+ option_data_generator(ignore_){}
 
- template<typename C>
- typename deduce_key_generator<C>::type
- data_generator()const
- {
- return typename deduce_key_generator<C>::type();
- }
-
     }/*->*/;
 
     template<>
- struct option_data_generator<keyword_aux::value>/*<-*/
+ struct option_data_generator<value_>/*<-*/
+ : option_data_generator_helper<value_>
     {
         option_data_generator(){}
- option_data_generator(keyword_aux::ignore){}
+ option_data_generator(ignore_){}
 
- template<typename C>
- typename deduce_value_generator<C>::type
- data_generator()const
- {
- return typename deduce_value_generator<C>::type();
- }
-
     }/*->*/;
 
     // Overrides data generator

Modified: sandbox/assign_v2/boost/assign/v2/option/list.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/list.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/list.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,12 +10,15 @@
 #ifndef BOOST_ASSIGN_V2_OPTION_LIST_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_LIST_ER_2010_HPP
 #include <boost/assign/v2/detail/keyword.hpp>
-#include <boost/assign/v2/interpreter/crtp.hpp>
-#include <boost/mpl/empty_base.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
+#include <boost/mpl/bool.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/typeof/typeof.hpp>
+#include <boost/type_traits/is_base_of.hpp>
 #include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_reference.hpp>
 #include <boost/utility/enable_if.hpp>
 
 namespace boost{
@@ -23,11 +26,11 @@
 namespace v2{
 namespace interpreter_aux{
 
- template<typename Lhs, typename Option>
+ template<typename Lhs, typename O>
     struct modulo_result
     {
         static Lhs lhs;
- static Option option;
+ static O option;
 
         #ifdef BOOST_MSVC
         BOOST_TYPEOF_NESTED_TYPEDEF_TPL(nested, lhs % option )
@@ -39,7 +42,7 @@
 
     template<typename Head>
     struct option_list_exit
- : boost::is_same<Head, keyword_aux::nil>
+ : boost::is_same<Head, nil_>
     {};
 
 namespace result_of{
@@ -71,9 +74,11 @@
     
 }// result_of
     
+ struct list_option_base{};
+
     template<
- typename Head = keyword_aux::nil,
- typename Tail = boost::mpl::empty_base,
+ typename Head = nil_,
+ typename Tail = list_option_base,
         bool exit = option_list_exit<Head>::value
>
     struct list_option : public Tail
@@ -87,17 +92,17 @@
             : Tail( tail ), head_( h )
         {}
     
- template<typename Option>
+ template<typename O>
         struct result
         {
- typedef list_option<Option, list_option> type;
+ typedef list_option<O, list_option> type;
         };
     
- template<typename Option>
- typename result<Option>::type
- operator%(Option option)const
+ template<typename O>
+ typename result<O>::type
+ operator%(O option)const
         {
- typedef typename result<Option>::type result_;
+ typedef typename result<O>::type result_;
             return result_( *this, option );
         }
                         
@@ -126,24 +131,74 @@
     typedef list_option<> empty_list_option;
 
     template<
- typename C, typename F, typename ModifierTag,
- typename DataTag, typename D,
+ typename C, typename F, typename MTag,
+ typename DTag, typename D,
         typename H, typename T
>
     typename result_of::apply_list_option<H, T, D>::type
     operator%(
- interpreter_crtp<C, F, ModifierTag, DataTag, D> const& lhs,
+ interpreter_crtp<C, F, MTag, DTag, D> const& lhs,
         list_option<H, T> const& list
     )
     {
         return list.apply( lhs );
     }
-
+
+namespace result_of{
+
+ template<typename L, typename O1>
+ struct list_option_modulo
+ : L:: template result<O1>
+ {};
+
+
+}// result_of
 }// interpreter_aux
 namespace{
     interpreter_aux::empty_list_option _list_option
         = interpreter_aux::empty_list_option();
 }
+namespace interpreter_aux{
+
+ template<typename O>
+ struct option_listable
+ : list_option_base
+ {};
+
+namespace result_of{
+
+ template<typename O1, typename O2>
+ struct option_modulo
+ : result_of::list_option_modulo<
+ typename result_of::list_option_modulo<
+ empty_list_option,
+ O1
+ >::type,
+ O2
+ >
+ {};
+
+}// result_of
+
+ template<typename O1, typename O2>
+ typename result_of::option_modulo<O1, O2>::type
+ operator%(option_listable<O1> const option1, O2 const& option2)
+ {
+ O1 const& ref = static_cast<O1 const&>( option1 );
+ return _list_option % ref % option2;
+ }
+
+ template<typename Os>
+ struct is_option_listable
+ : boost::is_base_of<
+ list_option_base,
+ typename boost::remove_cv<
+ typename boost::remove_reference<Os>::type
+ >::type
+ >
+ {};
+
+}// interpreter_aux
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,11 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_OPTION_MODIFIER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_ER_2010_HPP
+#include <boost/assign/v2/option/modifier/framework.hpp>
 #include <boost/assign/v2/option/modifier/insert.hpp>
 #include <boost/assign/v2/option/modifier/iterate.hpp>
 #include <boost/assign/v2/option/modifier/mapped.hpp>
-#include <boost/assign/v2/option/modifier/framework.hpp>
 #include <boost/assign/v2/option/modifier/repeat.hpp>
+#include <boost/assign/v2/option/modifier/row_major.hpp>
 #include <boost/assign/v2/option/modifier/std.hpp>
 
 #endif // BOOST_ASSIGN_V2_OPTION_MODIFIER_ER_2010_HPP
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,8 +12,8 @@
 #include <boost/assign/v2/detail/keyword.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/interpreter/fwd.hpp>
-#include <boost/assign/v2/interpreter/modifier.hpp>
 #include <boost/assign/v2/interpreter/replace.hpp>
+#include <boost/assign/v2/option/list.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/preprocessor/cat.hpp>
 
@@ -25,9 +25,13 @@
 
     template<
         typename Keyword // A class of modifiers
- , typename Arg /*<-*/= keyword_aux::ignore/*->*/ // Specifies an aspect of the implementation
+ , typename Arg /*<-*/= ignore_/*->*/ // Specifies an aspect of the implementation
>
- struct option_modifier
+ struct option_modifier/*<-*/
+ : option_listable<
+ option_modifier<Keyword, Arg>
+ >
+ /*->*/
     {
         
         option_modifier(){}
@@ -130,7 +134,11 @@
 \
     template<typename D, typename Arg>\
     struct BOOST_PP_CAT(option_, NAME)\
- : result_of::option_modifier<D, interpreter_aux::BOOST_PP_CAT(keyword_,NAME), Arg>\
+ : result_of::option_modifier<\
+ D,\
+ interpreter_aux::BOOST_PP_CAT(keyword_,NAME),\
+ Arg\
+ >\
     {};\
 \
 }\

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,18 +10,15 @@
 #ifndef BOOST_ASSIGN_V2_OPTION_MODIFIER_INSERT_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_INSERT_ER_2010_HPP
 #include <cstddef>
-#include <boost/assign/v2/detail/keyword.hpp>
-#include <boost/assign/v2/detail/traits/container.hpp>
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/detail/keyword.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
+#include <boost/assign/v2/detail/traits/container.hpp>
 #include <boost/assign/v2/option/modifier/framework.hpp>
 #include <boost/call_traits.hpp>
 #include <boost/shared_ptr.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <utility>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/utility/enable_if.hpp>
 #endif
 
 namespace boost{
@@ -39,8 +36,6 @@
     class interpreter_modifier< modifier_tag::insert >/*<-*/
     {
 
- typedef keyword_aux::ignore ignore_;
-
         public:
         interpreter_modifier(){}
         interpreter_modifier( ignore_, ignore_ ){}
@@ -96,4 +91,4 @@
 }// boost
 
 
-#endif // BOOST_ASSIGN_V2_OPTION_MODIFIER_ITERATE_ER_2010_HPP
+#endif // BOOST_ASSIGN_V2_OPTION_MODIFIER_INSERT_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,18 +10,16 @@
 #ifndef BOOST_ASSIGN_V2_OPTION_MODIFIER_ITERATE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_ITERATE_ER_2010_HPP
 #include <cstddef>
-#include <boost/assign/v2/detail/keyword.hpp>
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/detail/keyword.hpp>
+#include <boost/assign/v2/detail/functor/iterate.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/option/modifier/framework.hpp>
 #include <boost/call_traits.hpp>
 #include <boost/shared_ptr.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <utility>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/utility/enable_if.hpp>
 #endif
 
 namespace boost{
@@ -30,24 +28,7 @@
 //[syntax_option_iterate
 namespace modifier_tag{
 
- struct iterate_arg
- {
-
- typedef std::size_t result_type;
-
- iterate_arg():i( 0 ){}
- iterate_arg( result_type i_ ):i( i_ ){}
-
- result_type operator()()const{ return this->i++; }
-
- typedef iterate_arg type;
-
- private:
- mutable result_type i;
-
- };
-
- template<typename Arg/*<-*/= iterate_arg::type/*->*/> struct iterate{};
+ template<typename Arg = functor_aux::iterate> struct iterate{};
 
 }// modifier_tag
 namespace interpreter_aux{
@@ -64,7 +45,6 @@
     class interpreter_modifier< modifier_tag::iterate<Arg> >/*<-*/
     {
 
- typedef keyword_aux::ignore ignore_;
         typedef Arg arg_;
         // storing a copy of lambda::something has caused pbs, hence ptr
         typedef boost::shared_ptr<arg_> ptr_;

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,7 +12,6 @@
 #include <boost/assign/v2/detail/keyword.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/option/modifier/framework.hpp>
 #include <boost/call_traits.hpp>
 #include <boost/shared_ptr.hpp>
@@ -23,10 +22,7 @@
 //[syntax_option_mapped
 namespace modifier_tag{
 
- template<
- typename Arg
- >
- struct mapped;
+ template<typename Arg> struct mapped{};
 
 }// modifier_tag
 namespace interpreter_aux{
@@ -38,7 +34,6 @@
         typedef Arg arg_;
         // storing a copy of lambda::something has caused pbs, hence ptr
         typedef boost::shared_ptr<arg_> ptr_;
- typedef keyword_aux::ignore ignore_;
         
         public:
 

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -15,10 +15,7 @@
 #include <boost/assign/v2/detail/traits/container.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <utility>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_reference.hpp>
 #endif
-#include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/option/modifier/framework.hpp>
 
 namespace boost{

Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,7 +11,6 @@
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_STD_ER_2010_HPP
 #include <boost/assign/v2/detail/keyword.hpp>
 #include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
 #include <boost/assign/v2/option/modifier/framework.hpp>
 #include <boost/preprocessor/cat.hpp>
 
@@ -75,7 +74,6 @@
     template<>\
     class interpreter_modifier<modifier_tag::FUN>\
     {\
- typedef keyword_aux::ignore ignore_;\
         public:\
         interpreter_modifier(){}\
         interpreter_modifier( ignore_, ignore_ ){}\

Modified: sandbox/assign_v2/boost/assign/v2/pipe.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/pipe.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/pipe.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,6 +10,8 @@
 #ifndef BOOST_ASSIGN_V2_PIPE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PIPE_ER_2010_HPP
 
+#include <boost/assign/v2/pipe/chain.hpp>
+#include <boost/assign/v2/pipe/convert.hpp>
 #include <boost/assign/v2/pipe/csv_put.hpp>
 
 #endif // BOOST_ASSIGN_V2_PIPE_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,15 +10,18 @@
 #ifndef BOOST_ASSIGN_V2_PIPE_CSV_PUT_HPP_ER_2010
 #define BOOST_ASSIGN_V2_PIPE_CSV_PUT_HPP_ER_2010
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/detail/keyword.hpp>
+#include <boost/assign/v2/detail/traits.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/assign/v2/option/list.hpp>
 #include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/assign/v2/ref/array/as_arg_list.hpp>
 #include <boost/assign/v2/ref/array/csv_array.hpp>
 #include <boost/assign/v2/ref/wrapper/copy.hpp>
 #include <boost/mpl/apply.hpp>
-#include <boost/mpl/vector/vector0.hpp>
+#include <boost/mpl/if.hpp>
 #include <boost/mpl/size.hpp>
+#include <boost/mpl/vector/vector0.hpp>
 #if !BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
 #include <boost/mpl/aux_/na.hpp>
@@ -180,10 +183,16 @@
>
     C& operator|(C& cont, interpreter_aux::arg_list<H, T, N, U> const& arg_list)/*<-*/
     {
- typedef typename deduce_value_generator<C>::type data_gen_;
- typedef typename v2::result_of::put<C, data_gen_>::type put_;
+ typedef typename ::boost::mpl::if_c<
+ !container_aux::is_map<C>::value,
+ use_default_,
+ value_
+ >::type arg_;
+
         v2::ref::as_arg_list(
- arg_list.apply( put_( cont ) ),
+ arg_list.apply(
+ put( cont ) % ( _data = arg_() )
+ ),
             arg_list.arg_list_cont()
         );
         return cont;

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,132 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_ER_2010_HPP
-#include <boost/assign/v2/interpreter/crtp.hpp>
-#include <boost/assign/v2/interpreter/data_generator.hpp>
-#include <boost/assign/v2/interpreter/modifier.hpp>
-#include <boost/assign/v2/interpreter/replace.hpp>
-#include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/ref/wrapper/copy.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[syntax_put
-namespace interpreter_aux{
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- class put_interpreter :
-//<-
- protected ref::wrapper< ref::assign_tag::copy, C >,
-//->
- public interpreter_aux::interpreter_crtp<
- C,
- F,
- ModifierTag, DataTag, put_interpreter<C, F, ModifierTag, DataTag>
- >
- {
-//<-
- typedef interpreter_aux::interpreter_crtp<
- C, F, ModifierTag, DataTag, put_interpreter
- > super2_t;
-//->
- public:
-
- typedef /*<-*/ typename super2_t::result_type
- BOOST_ASSIGN_V2_IGNORE(/*->*/ unspecified /*<-*/)/*->*/
- result_type;
-//<-
- protected:
-
- typedef interpreter_aux::interpreter_modifier<ModifierTag> modifier_;
- typedef ref::assign_tag::copy assign_tag_;
- typedef ref::wrapper<assign_tag_,C> super1_t;
-//->
- public:
-
- put_interpreter()/*<-*/
- {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
- explicit put_interpreter( C& cont )/*<-*/
- : super1_t( cont )
- {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
- explicit put_interpreter( C& cont, F const& f, modifier_ const& m )/*<-*/
- : super1_t( cont ), super2_t( f, m )
- {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- C& container()const/*<-*/{
- return static_cast<super1_t const&>(*this).get();
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- };
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- struct replace_data_generator<
- interpreter_aux::put_interpreter<C, F, ModifierTag, DataTag>
- >{
- template<typename F1>
- struct apply/*<-*/{
- typedef interpreter_aux::put_interpreter<
- C, F1, ModifierTag, DataTag
- > type;
- }/*->*/;
- };
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- struct replace_modifier_tag<
- interpreter_aux::put_interpreter<C, F, ModifierTag, DataTag>
- >{
- template<typename ModifierTag1>
- struct apply/*<-*/{
- typedef interpreter_aux::put_interpreter<
- C, F, ModifierTag1, DataTag
- > type;
- }/*->*/;
- };
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- struct replace_data_tag<
- interpreter_aux::put_interpreter<C, F, ModifierTag, DataTag>
- >{
- template<typename DataTag1>
- struct apply/*<-*/{
- typedef interpreter_aux::put_interpreter<
- C, F, ModifierTag, DataTag1
- > type;
- }/*->*/;
- };
-
-}// interpreter_aux
-namespace result_of{
-
- template<
- typename C/*<-*/
- , typename DataGenerator
- = typename interpreter_aux::deduce_data_generator<C>::type
- >
- struct put/*<-*/{
- typedef
- interpreter_aux::put_interpreter<
- C
- , DataGenerator
- , typename interpreter_aux::deduce_modifier_tag<C>::type
- , typename interpreter_aux::deduce_data_tag<C>::type
- >
- type;
- }/*->*/;
-
-}// result_of
-
- template<typename C>
- typename result_of::put<C>::type
- put( C& cont )/*<-*/
- {
- typedef typename result_of::put<C>::type result_;
- return result_( cont );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
-//]
-}// v2
-}// assign
-}// boost
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 
 #endif // BOOST_ASSIGN_V2_PUT_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -56,15 +56,15 @@
         : nth_result_of::array<1, U>{}/*->*/;
 
     template<typename U>
- struct array<U, keyword_aux::nil>/*<-*/
+ struct array<U, nil_>/*<-*/
         : nth_result_of::array<0, U>{}/*->*/;
 
 }// result_of
 
     // Generates an empty array
     template<typename T>
- typename result_of::array<T, keyword_aux::nil>::type
- array( keyword_aux::nil )
+ typename result_of::array<T, nil_>::type
+ array( nil_ )
     /*<-*/
     {
         return ref::list<list_aux::array_tag>( v2::_nil );

Modified: sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -47,7 +47,7 @@
 
     template<typename U>
     typename nth_result_of::csv_array<0, U>::type
- csv_array( keyword_aux::nil )/*<-*/
+ csv_array( nil_ )/*<-*/
     {
         typedef typename nth_result_of::csv_array<0, U>::type result_;
         return result_();

Modified: sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -53,7 +53,7 @@
         nth_result_of::list<Tag>,
         ::boost::mpl::vector0<>
>::type
- list( keyword_aux::nil )
+ list( nil_ )
     {
         return typename ::boost::mpl::apply1<
             nth_result_of::list<Tag>,

Modified: sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__GET_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_INCLUDE__GET_ER_2010_HPP
-#include <boost/assign/v2/ref/array/get.hpp>
-
-#endif // BOOST_ASSIGN_V2_REF_INCLUDE__GET_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_ARRAY_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_INCLUDE_ARRAY_ER_2010_HPP
-#include <boost/assign/v2/ref/array/array.hpp>
-
-#endif // BOOST_ASSIGN_V2_REF_INCLUDE_ARRAY_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_CSV_ARRAY_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_INCLUDE_CSV_ARRAY_ER_2010_HPP
-#include <boost/assign/v2/ref/array/csv_array.hpp>
-
-#endif // BOOST_ASSIGN_V2_REF_INCLUDE_CSV_ARRAY_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -23,8 +23,6 @@
 /*#include <fstream>
 #include <libs/assign/v2/speed/test.h>*/
 
-//#include <boost/assign/v2/include.hpp>
-
 int main (int argc, char * const argv[])
 {
 

Modified: sandbox/assign_v2/libs/assign/v2/test/conversion.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/conversion.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/conversion.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -42,7 +42,7 @@
             //[test_conversion_vec_array
             std::vector<int> r( 3 ); r[0] = 1 ; r[1] = 10; r[2] = 100;
             typedef array<int, 3> ar_;
- ar_ const& ar = ( r | as2::_convert<ar_>() );
+ ar_ const& ar = ( r | as2::convert<ar_>() );
             
             BOOST_ASSIGN_V2_CHECK( range::equal( ar, as2::csv_deque( 1 , 10, 100 ) ) );
             //]
@@ -70,9 +70,9 @@
             const int sz = 3; typedef array<int, sz> row_;
             array<row_, sz> matrix3x3 = converter(
                 as2::ref::array
- ( as2::ref::csv_array( 1, 2, 3 ) | as2::_convert<row_>() )
- ( as2::ref::csv_array( 4, 5, 6 ) | as2::_convert<row_>() )
- ( as2::ref::csv_array( 7, 8, 9 ) | as2::_convert<row_>() )
+ ( as2::ref::csv_array( 1, 2, 3 ) | as2::convert<row_>() )
+ ( as2::ref::csv_array( 4, 5, 6 ) | as2::convert<row_>() )
+ ( as2::ref::csv_array( 7, 8, 9 ) | as2::convert<row_>() )
             );
             
             for(int i = 0; i < 9; i++)
@@ -86,7 +86,7 @@
             //[test_conversion_as2_deque_array
             std::vector<int> r( 3 ); r[0] = 1 ; r[1] = 10; r[2] = 100;
             typedef array<int, 3> ar_;
- ar_ const& ar = ( as2::csv_deque( 1 , 10, 100 ) | as2::_convert<ar_>() );
+ ar_ const& ar = ( as2::csv_deque( 1 , 10, 100 ) | as2::convert<ar_>() );
             
             BOOST_ASSIGN_V2_CHECK(
                 range::equal( ar, as2::csv_deque( 1 , 10, 100 ) )

Modified: sandbox/assign_v2/libs/assign/v2/test/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/csv.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/csv.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,12 +11,13 @@
 #include <map>
 #include <string>
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/csv.hpp>
+//#include <boost/assign/v2/csv.hpp>
 #include <boost/assign/v2/deque.hpp>
-#include <boost/assign/v2/put.hpp>
 // Options come after
 #include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/assign/v2/option/modifier/std.hpp>
+#include <boost/assign/v2/put/csv_put.hpp> // Really?
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/range/algorithm/equal.hpp>
 #include <libs/assign/v2/test/csv.h>
 
@@ -30,7 +31,7 @@
         {
             //[test_csv_put
             std::deque<int> cont;
- as2::csv( as2::put( cont ), 1, 10, 100 );
+ as2::csv_put( cont, 1, 10, 100 );
 
             BOOST_ASSIGN_V2_CHECK( range::equal( cont, as2::csv_deque( 1, 10, 100 ) ) );
             //]
@@ -40,10 +41,7 @@
             typedef std::map<std::string, int> C; typedef C::value_type T;
             C cont;
 
- as2::csv(
- as2::put( cont ) % (as2::_data = as2::_value),
- T("jan", 31), T("feb", 28), T("mar", 31)
- );
+ as2::csv_put( cont, T("jan", 31), T("feb", 28), T("mar", 31) );
 
             BOOST_ASSIGN_V2_CHECK( cont["jan"] == 31 );
             BOOST_ASSIGN_V2_CHECK( cont["mar"] == 31 );
@@ -52,21 +50,18 @@
         {
             //[test_csv_put_modulo
             std::deque<int> cont;
- as2::csv(
- as2::put( cont ) % as2::_push_front,
- 100, 10, 1
- );
+ as2::csv_put( cont, as2::_push_front, 100, 10, 1 );
 
             BOOST_ASSIGN_V2_CHECK(
                 range::equal( cont, as2::csv_deque( 1, 10, 100 ) )
             );
             //]
         }
- {
+ /*{
             //[test_csv_deque_modulo
             BOOST_AUTO(
                 cont,
- as2::csv(
+ csv(
                     as2::deque<int>( as2::_nil ) % as2::_push_front,
                     1, 10, 100
                 )
@@ -76,7 +71,7 @@
                 range::equal( cont, as2::csv_deque( 1, 10, 100 ) )
             );
             //]
- }
+ }*/
     }
 
 }// xxx_csv

Modified: sandbox/assign_v2/libs/assign/v2/test/option.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,6 +12,7 @@
 #include <libs/assign/v2/test/option/list.h>
 #include <libs/assign/v2/test/option/mapped.h>
 #include <libs/assign/v2/test/option/repeat.h>
+#include <libs/assign/v2/test/option/row_major.h>
 #include <libs/assign/v2/test/option/std_modifier.h>
 #include <libs/assign/v2/test/option.h>
 
@@ -24,6 +25,7 @@
         xxx_mapped::test();
         xxx_list::test();
         xxx_repeat::test();
+ // xxx_row_major::test(); // TODO
         xxx_standard::test();
     }
 

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -15,13 +15,12 @@
 #include <boost/array.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/deque.hpp>
-#include <boost/assign/v2/put.hpp>
-// Options come next
 #include <boost/assign/v2/option/data_generator.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/function.hpp>
 #include <boost/lambda/bind.hpp>
 #include <boost/lambda/lambda.hpp>
-#include <boost/lambda/construct.hpp>
 #include <boost/numeric/conversion/bounds.hpp>
 #include <boost/range/algorithm/equal.hpp>
 #include <boost/typeof/typeof.hpp>
@@ -41,9 +40,11 @@
             std::vector<double> exponent;
             /*<-*/typedef double(*fp)(double);/*->*/
             typedef function<double(double)> f_;
- (
- as2::put( exponent ) % ( as2::_data = f_( /*<-*/fp(/*->*/ log10 /*<-*/)/*->*/ ) )
- )( 1.0 )( 10.0 )( 100.0 )( 1000.0 )( 10000.0 );
+ as2::csv_put(
+ exponent
+ , as2::_data = f_( /*<-*/fp(/*->*/ log10 /*<-*/)/*->*/ )
+ , 1.0, 10.0, 100.0, 1000.0, 10000.0
+ );
 
             double eps = numeric::bounds<double>::smallest();
             BOOST_ASSIGN_V2_CHECK( fabs( exponent.front() - 0.0 ) < eps );
@@ -68,16 +69,16 @@
         {
             //[test_option_data_value
             typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
             typedef std::map<int, word_> C;
             typedef C::value_type T;
             typedef C::mapped_type D;
             C map;
             (
                 as2::put( map ) % ( as2::_data = as2::_value )
- )( 1, D( foo, 3 ) )( 2, bar )( 3, D( baz, 3, 3 ) )( 4, "qux");
+ )( 1, D( x, 3 ) )( 2, y )( 3, D( z, 3, 3 ) )( 4, "qux");
 
             BOOST_ASSIGN_V2_CHECK( map[1] == "foo" ); BOOST_ASSIGN_V2_CHECK( map[2] == "bar" );
             BOOST_ASSIGN_V2_CHECK( map[3] == "baz" ); BOOST_ASSIGN_V2_CHECK( map[4] == "qux" );

Modified: sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,11 +10,10 @@
 #include <vector>
 #include <boost/array.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-
-#include <boost/assign/v2/put.hpp>
-// Options come next
-#include <boost/assign/v2/option/modifier/iterate.hpp>
 #include <boost/assign/v2/deque.hpp>
+#include <boost/assign/v2/option/modifier/iterate.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/lambda/bind.hpp>
 #include <boost/lambda/construct.hpp>
@@ -36,7 +35,7 @@
         using namespace boost;
         namespace as2 = assign::v2; {
             //[test_option_iterate_meta
- typedef as2::modifier_tag::iterate_arg arg_;
+ typedef as2::functor_aux::iterate arg_;
             typedef array<int, 4> cont_;
             typedef as2::result_of::put<cont_>::type put_;
             typedef as2::result_of::option_iterate<put_, arg_>::type result1_;
@@ -54,9 +53,11 @@
             alternating[2] = -2;
 
             int index = 3;
- (
- as2::put( alternating ) % ( as2::_iterate = var( index )++ )
- )( +2 )( -3 )( +3 )( -4 )( +4 )( -5 )( +5 );
+ as2::csv_put(
+ alternating
+ , as2::_iterate = var( index )++
+ , +2, -3, +3, -4, +4, -5, +5
+ );
 
             BOOST_ASSIGN_V2_CHECK(
                 range::equal(
@@ -66,10 +67,11 @@
             );
             //]
         }
+/*
         {
             //[test_option_iterate_meta_deque
             typedef as2:: interpreter_aux::keyword_iterate keyword_;
- typedef as2::modifier_tag::iterate_arg arg_;
+ typedef as2::functor_aux::iterate arg_;
             typedef as2::result_of::deque<int>::type put_;
             typedef as2::result_of::option_iterate<put_, arg_>::type result1_;
             typedef as2::modifier_tag::iterate<arg_> tag1_;
@@ -102,6 +104,7 @@
             );
             //]
         }
+*/
     }
 
 }// xxx_iterate

Modified: sandbox/assign_v2/libs/assign/v2/test/option/list.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/list.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/list.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,10 +9,10 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <deque>
 #include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/assign/v2/option/list.hpp>
 #include <boost/assign/v2/option/data_generator.hpp>
 #include <boost/assign/v2/option/modifier/std.hpp>
-#include <boost/assign/v2/put.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/static_assert.hpp>
 #include <boost/typeof/typeof.hpp>
@@ -24,8 +24,6 @@
 
     void test()
     {
- //xxx_csv_put::test();
- //xxx_option::test();
         using namespace boost::assign::v2;
         std::deque<int> cont;
 
@@ -35,13 +33,12 @@
         BOOST_AUTO(
             apply,
             (
- _list_option % _push_front % ( _data = ( _1 % 10 ) )
+ _push_front % ( _data = ( _1 % 10 ) )
             ).apply( put( cont ) )
         );
         apply( 15 );
         BOOST_ASSIGN_V2_CHECK( cont[0] == 5 );
         BOOST_ASSIGN_V2_CHECK( cont[1] == 1 );
-
     }
 
 }// xxx_list

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,7 +11,7 @@
 #include <string>
 #include <cmath>
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/assign/v2/deque.hpp>
 // Options come next
 #include <boost/assign/v2/option/data_generator.hpp>
@@ -36,11 +36,13 @@
         {
             //[test_option_mapped_map
             using namespace lambda;
- typedef std::string str_; typedef std::map<str_, int> C; C year;
+ typedef std::string month_; typedef int days_;
+ typedef std::map<month_, days_> C; C year;
             (
                 as2::put( year )( "feb", 28 )( "apr", 30 )( "jun", 30 )( "sep", 30 )( "nov", 30 )
- % (as2::_data = as2::_key) % ( as2::_mapped = ( _1 = 31 ) )
- )/*<<Calls `year["jan"] = 31` etc.>>*/( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
+ % (as2::_data = as2::_key)
+ % ( as2::_mapped = ( _1 = 31 ) )
+ )/*<<Calls `year[ month_( "jan" ) ] = 31`>>*/( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
 
             BOOST_ASSIGN_V2_CHECK( year["jan"] == 31 );
             BOOST_ASSIGN_V2_CHECK( year["dec"] == 31 );

Modified: sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,7 +10,7 @@
 #include <vector>
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
 // Options come next
 #include <boost/assign/v2/option/modifier/std.hpp>
 #include <boost/assign/v2/option/modifier/repeat.hpp>
@@ -29,10 +29,13 @@
         {
             //[test_option_repeat_simple
             std::vector<int> cont;
- ( as2::put( cont ) % ( as2::_repeat = 2 ) )( 1 )( 10 )( 100 );
+ as2::csv_put( cont, as2::_repeat = 2, 1, 10, 100 );
 
             BOOST_ASSIGN_V2_CHECK(
- range::equal( cont, as2::csv_deque( 1, 1, 10, 10, 100, 100 ) )
+ range::equal(
+ cont,
+ as2::csv_deque( 1, 1, 10, 10, 100, 100 )
+ )
             );
             //]
         }

Modified: sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -13,7 +13,7 @@
 #include <set>
 #include <string>
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
 #include <boost/assign/v2/deque.hpp>
 // Options come next
 #include <boost/assign/v2/option/modifier/std.hpp>
@@ -21,8 +21,6 @@
 #include <boost/range/begin.hpp>
 #include <boost/range/end.hpp>
 #include <boost/range/algorithm/equal.hpp>
-#include <boost/range/algorithm/lower_bound.hpp>
-#include <boost/range/algorithm/upper_bound.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/assert.hpp>
@@ -48,7 +46,7 @@
             typedef as2::result_of::put<std::vector<int> >::type put_;
             typedef as2::modifier_tag::push_front tag_;
             typedef as2::result_of::option_std_modifier<
- put_, tag_
+ put_, tag_
>::type result1_;
             typedef as2:: interpreter_aux::replace_modifier_tag<put_> meta2_;
             typedef ::boost::mpl::apply1<meta2_, tag_>::type result2_;
@@ -58,14 +56,14 @@
         {
             // fully qual boost::begin/end demanded by MSVC - error C2668
             //[test_option_push_front
- boost::circular_buffer<int> cb(3);
- ( as2::put( cb ) % as2::_push_front)( 3 )( 2 )( 1 );
+ boost::circular_buffer<int> cb( 3 );
+ as2::csv_put( cb, as2::_push_front, 3, 2, 1 );
              
             BOOST_ASSIGN_V2_CHECK(
                 range::equal(cb, as2::csv_deque(1, 2, 3) )
             );
 
- as2::put( cb )( 4 )( 5 );
+ as2::csv_put( cb, 4, 5 );
 
             BOOST_ASSIGN_V2_CHECK(
                 range::equal(cb, as2::csv_deque(3, 4, 5) )
@@ -75,7 +73,8 @@
         }
         {
             //[test_option_push
- std::queue<int> fifo; ( as2::put( fifo ) % as2::_push )( 1 )( 10 )( 100 );
+ // NB: This option is dedundant with the default
+ std::queue<int> fifo; as2::csv_put( fifo, as2::_push, 1, 10, 100 );
 
             BOOST_ASSIGN_V2_CHECK( fifo.front() == 1 );
             BOOST_ASSIGN_V2_CHECK( fifo.back() == 100 );
@@ -83,7 +82,8 @@
         }
         {
             //[test_option_insert
- std::set<std::string> letters; ( as2::put( letters ) % as2::_insert )( "d" )( "a" )( "c" )( "b" );
+ // NB: This option is dedundant with the default
+ std::set<std::string> letters; as2::csv_put( letters, as2::_insert, "d", "a", "c", "b" );
 
             BOOST_ASSIGN_V2_CHECK( letters.lower_bound( "a" ) == boost::begin( letters ) );
             BOOST_ASSIGN_V2_CHECK( letters.upper_bound( "d" ) == boost::end( letters ) );
@@ -91,10 +91,13 @@
         }
         {
             //[test_option_push_back
+ // NB: This option is dedundant with the default
             std::list<int> list;
- ( as2::put( list ) % as2::_push_back )( 1 )( 10 )( 100 );
+ as2::csv_put( list, as2::_push_back, 1, 10, 100 );
 
- BOOST_ASSIGN_V2_CHECK( range::equal( list, as2::csv_deque( 1, 10, 100 ) ) );
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal( list, as2::csv_deque( 1, 10, 100 ) )
+ );
             //]
         }
         // DEQUE

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,7 +11,8 @@
 #include <utility>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
 #include <boost/scoped_ptr.hpp>
 #include <boost/ptr_container/ptr_array.hpp>
 #include <boost/ptr_container/ptr_deque.hpp>
@@ -31,81 +32,80 @@
 
         namespace as2 = boost::assign::v2;
 
- {
+ // ARRAY
+ {
             //[test_put_ptr_array
             typedef int T;
             T x = 1, y = 2, z = 3; boost::ptr_array<T, 3> cont;
- as2::put( cont )/*<<Calls `assoc[i++] = new T( t )` for `i = 0` and `t`[^ = ] `x`, `y`, and `z`>>*/( x )( y )( z );
+ /*<<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_put_ptr_deque
             typedef int T; T x = 1, y = 2, z = 0; boost::ptr_deque<T> cont;
- as2::put( cont )/*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( y )( z );
+ /*<<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_ptr_list
- typedef int T; T x = 1, y = 2, z = 0; boost::ptr_list<T> cont;
- as2::put( cont )/*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( y )( z );
+ //[test_put_ptr_map
+ typedef std::string key_;
+ boost::ptr_map<key_, int> assoc;
+ as2::put( assoc )( "jan", 31 )( "feb", 28 )( "mar", 31 );
 
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+
+ BOOST_ASSIGN_V2_CHECK( assoc["jan"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( assoc["mar"] == 31 );
             //]
         }
- {
- //[test_put_ptr_vector
- typedef int T; T x = 1, y = 2, z = 0; boost::ptr_vector<T> cont;
- as2::put( cont )/*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( y )( z );
+ {
+ //[test_put_ptr_unordered_map
+ 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");
 
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+ assert( map[1] == "foo" ); assert( map[2] == "bar" );
+ assert( map[3] == "baz" ); assert( map[4] == "qux" );
             //]
         }
         {
- //[put_ptr_map
- typedef std::string key_;
- boost::ptr_map<key_, int> assoc;
- as2::put( assoc )( "jan", 31 )( "feb", 28 )( "mar", 31 );
+ //[test_csv_put_ptr_map
+ typedef std::string key_; typedef int days_;
+ typedef boost::ptr_map<key_, days_> C;
+ typedef as2::value_container_value<C>::type /*<<Same as `std::map<key_, days_>::value_type`>>*/T;
+ C map; as2::csv_put( map, T("jan", 31 ), T( "feb", 28 ), T( "mar", 31 ) );
 
             
- BOOST_ASSIGN_V2_CHECK( assoc["jan"] == 31 );
- BOOST_ASSIGN_V2_CHECK( assoc["mar"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( map["jan"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( map["mar"] == 31 );
             //]
         }
+ // SET
         {
- //[put_ptr_set
+ // Shows that x, y, z can be variadic
+ //[test_put_ptr_set
             typedef std::string T; boost::ptr_set<T> assoc;
             T x = "isomer", y = "ephemeral", z = "prosaic";
- as2::put( assoc )/*<<Calls `assoc.insert( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( z )( y );
+ /*<<Calls `assoc.insert( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/as2::csv_put( assoc, x, z, y );
 
             BOOST_ASSIGN_V2_CHECK( assoc.count( x ) == 1 );
             BOOST_ASSIGN_V2_CHECK( assoc.count( z ) == 1 );
             //]
         }
         {
- //[test_put_put_unordered_map
- typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
- boost::ptr_unordered_map<int, word_> map;
- as2::put( map )( 1, foo, 3 )( 2, bar )( 3, baz, 3, 3 )( 4, "qux");
-
- assert( map[1] == "foo" ); assert( map[2] == "bar" );
- assert( map[3] == "baz" ); assert( map[4] == "qux" );
- //]
- }
- {
- //[test_put_put_unordered_set
+ //[test_put_ptr_unordered_set
             boost::ptr_unordered_set<std::string> set;
- as2::put( set )( "foo" )( "bar" )( "baz" );
+ as2::csv_put( set, "foo", "bar", "baz" );
 
             BOOST_ASSIGN_V2_CHECK( set.count( "foo" ) == 1 );
             BOOST_ASSIGN_V2_CHECK( set.count( "baz" ) == 1 );

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-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -25,7 +25,8 @@
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/detail/traits.hpp>
 #include <boost/assign/v2/deque/csv_deque.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
 #include <boost/tuple/tuple.hpp>
 #include <boost/range/algorithm_ext/iota.hpp>
 #include <boost/range/begin.hpp>
@@ -47,30 +48,32 @@
         using namespace boost;
         namespace as2 = assign::v2;
 
+ // STL
         {
- //[test_put_put_bitset
- typedef std::string str_; typedef std::bitset<3> number;
- /*<<Keep in mind that although `number( str_( "011" ) )`, for instance, is valid, `range_3bit.push_back( str_( "011" ) )` isn't (GCC4.2)>>*/ std::vector<number> range_3bit;
- /*<<Calls `range_3bit.push_back( number( t ) );` for [^t = ]`str_( "000" )`[^, ..., ]`str_( "111" )`>>*/as2::put( range_3bit )
- ( str_( "000" ) )( str_( "001" ) )
- ( str_( "010" ) )( str_( "011" ) )
- ( str_( "100" ) )( str_( "101" ) )
- ( str_( "110" ) )( str_( "111" ) );
-
- for(unsigned i = 0; i < range_3bit.size(); i++)
- {
- BOOST_ASSIGN_V2_CHECK( range_3bit[i].to_ulong() == i );
- }
- //]
- // unsigned i else warning comparison between signed & unsigned
+ //[test_csv_put_stl
+ std::queue<int> adapter; as2::csv_put( adapter, 1, 10, 100 );
+ array<int, 3> array; as2::csv_put( array, 1, 10, 100 );
+ std::set<int> assoc; as2::csv_put( assoc, 1, 10, 100 );
+ std::list<int> seq; as2::csv_put( seq, 1, 10, 100 );
+ //]
+ BOOST_ASSIGN_V2_CHECK( adapter.front() == 1 );
+ BOOST_ASSIGN_V2_CHECK( adapter.back() == 100 );
+ BOOST_ASSIGN_V2_CHECK( array.front() == 1 );
+ BOOST_ASSIGN_V2_CHECK( array.back() == 100 );
+ BOOST_ASSIGN_V2_CHECK( assoc.count( 100 ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( assoc.count( 1 ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( seq.front() == 1 );
+ BOOST_ASSIGN_V2_CHECK( seq.back() == 100 );
         }
+ // ARRAY
         {
- //[test_put_put_numeric_kb
+ //[test_csv_put_keypad
             std::vector<int> numeric( 10 ); iota( numeric, 0 ); typedef std::string str_;
             typedef variant< int, str_ > key_; array<key_, 16> keypad;
- as2::put( keypad )
- /*<<Calls `keypad[ i ] = key_( t )` for [^( i, t ) = ( 0, "+" ), ..., ( 5, "." )]>>*/( "+" )( "-" )( "*" )( "/" )( "=" )( "." )
- /*<<Calls `keypad[ 6 + i ] = key_( *( b + i ) )` for [^i = 0, ..., 9] and [^b =] `boost::begin( numeric )`>>*/( as2::as_arg_list( numeric ) );
+ as2::csv_put( keypad
+ , "+", "-", "*", "/", "=", "."
+ , as2::as_arg_list( numeric )
+ );
 
             BOOST_ASSIGN_V2_CHECK( get<str_>( keypad.front() ) == "+" );
             BOOST_ASSIGN_V2_CHECK( get<int>( keypad.back() ) == 9 );
@@ -79,16 +82,16 @@
             BOOST_ASSIGN_V2_CHECK( get<int>( keypad[ 6 ] ) == 0 );
         }
         {
- //[test_put_put_ragged
+ //[test_put_ragged
             typedef double data_; typedef std::vector<data_> uneven_;
             uneven_ a( 3 ); a[0] = 0.71; a[1] = 0.63; a[2] = 0.85;
             uneven_ b( 4 ); b[0] = 0.61; b[1] = 0.69; b[2] = 0.92; b[3] = 0.55;
             array<uneven_, 4> ragged;
             as2::put( ragged )
                 /*<<Calls `ragged.push_back( uneven_( begin( a ), end( a ) ) )`>>*/( boost::begin( a ), boost::end( a ) )
- /*<<Calls `ragged.push_back( uneven_( b ) )`>>*/( b )
- /*<<Calls `ragged.push_back( uneven_( 1, -99.99 ) )`>>*/( 1, -99.99 )
- /*<<Calls `ragged.push_back( uneven_( ) )`>>*/( );
+ ( b )
+ ( 1, -99.99 )
+ ( );
 
             BOOST_ASSIGN_V2_CHECK( ragged[0].size() == a.size() );
             BOOST_ASSIGN_V2_CHECK( ragged[3].size() == 0 );
@@ -103,25 +106,28 @@
             BOOST_ASSIGN_V2_CHECK( fabs( ragged[2].front() + 99.99 ) < eps );
             BOOST_ASSIGN_V2_CHECK( fabs( ragged[2].back() + 99.99 ) < eps );
         }
+ // SEQUENCE
         {
- //[test_put_put_stl
- std::queue<int> adapter; /*<<Calls `adapter.push( t )` for [^t = 72, 31, 48]>>*/as2::put( adapter )( 72 )( 31 )( 48 );
- array<int, 3> array; /*<<Calls `array[i] = t` for [^( i, t ) = ( 0, 72 ), ( 1, 31 ), ( 2, 48 )]>>*/as2::put( array )( 72 )( 31 )( 48 );
- std::set<int> assoc; /*<<Calls `assoc.insert( t )` for [^t = 72, 31, 48]>>*/as2::put( assoc )( 72 )( 31 )( 48 );
- std::list<int> seq; /*<<Calls `seq.push_back( t )` for [^t = 72, 31, 48]>>*/as2::put( seq )( 72 )( 31 )( 48 );
- //]
- BOOST_ASSIGN_V2_CHECK( adapter.front() == 72 );
- BOOST_ASSIGN_V2_CHECK( adapter.back() == 48 );
- BOOST_ASSIGN_V2_CHECK( array.front() == 72 );
- BOOST_ASSIGN_V2_CHECK( array.back() == 48 );
- BOOST_ASSIGN_V2_CHECK( assoc.count( 48 ) == 1 );
- BOOST_ASSIGN_V2_CHECK( assoc.count( 72 ) == 1 );
- BOOST_ASSIGN_V2_CHECK( seq.front() == 72 );
- BOOST_ASSIGN_V2_CHECK( seq.back() == 48 );
+ //[test_csv_put_bitset
+ typedef std::string str_; typedef std::bitset<3> number;
+ std::vector<number> /*<<Note that although `number( str_( "011" ) )`, for instance, is valid, `range_3bit.push_back( str_( "011" ) )`>>*/ range_3bit;
+ /*<<Calls `range_3bit.push_back( number( t ) );` for [^t = ]`str_( "000" )`[^, ..., ]`str_( "111" )`>>*/as2::csv_put( range_3bit
+ , str_( "000" ), str_( "001" )
+ , str_( "010" ), str_( "011" )
+ , str_( "100" ), str_( "101" )
+ , str_( "110" ), str_( "111" )
+ );
+
+ for(unsigned i = 0; i < range_3bit.size(); i++)
+ {
+ BOOST_ASSIGN_V2_CHECK( range_3bit[i].to_ulong() == i );
+ }
+ //]
+ // unsigned i else warning comparison between signed & unsigned
         }
         {
             // http://bioinfo.mbb.yale.edu/~mbg/dom/fun3/area-codes/
- //[test_put_put_area_codes
+ //[test_put_area_codes
             typedef const char us_state_ [3]; us_state_ ct = "CT", nj = "NJ", ny = "NY";
             typedef int area_code_;
             typedef tuple<us_state_/*<<Notice the [*reference]>>*/&, area_code_> data_;
@@ -138,38 +144,52 @@
             BOOST_ASSIGN_V2_CHECK( get<1>( region.front() ) == 212 );
             BOOST_ASSIGN_V2_CHECK( get<0>( region.back() ) == ct );
         }
+ //SET
+ {
+ //[test_csv_put_unordered_set
+ boost::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 );
+ //]
+ }
+ // MAP
         {
- //[test_put_put_unordered_map
+ //[test_put_unordered_map
             typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
             boost::unordered_map<int, word_> map;
- as2::put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 1, foo, 3 )( 2, bar )( 3, baz, 3, 3 )( 4, "qux");
+ as2::put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 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_put_put_unordered_set
- boost::unordered_set<std::string> set;
- as2::put( set )( "foo" )( "bar" )( "baz" );
+ {
+ //[test_csv_put_map
+ typedef std::string month_; typedef int days_;
+ typedef std::map<month_, days_> C;
+ typedef C::value_type T;
+ C map; as2::csv_put( map, T("jan", 31 ), T( "feb", 28 ), T( "mar", 31 ) );
 
- BOOST_ASSIGN_V2_CHECK( set.count( "foo" ) == 1 );
- BOOST_ASSIGN_V2_CHECK( set.count( "baz" ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( map["jan"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( map["mar"] == 31 );
             //]
         }
+ // OTHER
         {
- //test_put_put_cb
+ //test_csv_put_cb
               boost::circular_buffer<int> cb(3);
- as2::put( cb )( 1 )( 2 )( 3 );
+ as2::csv_put( cb, 1, 2, 3 );
              
              BOOST_ASSIGN_V2_CHECK(
                  range::equal(cb, as2::csv_deque(1, 2, 3) )
              );
 
- as2::put( cb )( 4 )( 5 );
+ as2::csv_put( cb, 4, 5 );
 
              BOOST_ASSIGN_V2_CHECK(
                  range::equal(cb, as2::csv_deque(3, 4, 5) )

Modified: sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,31 +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_UNIT_TEST_CSV_ER_2010_CPP
-#define LIBS_ASSIGN_V2_TEST_UNIT_TEST_CSV_ER_2010_CPP
-
-#include <iostream> // needed?
-
-#include <boost/test/test_tools.hpp>
-#define BOOST_ASSIGN_V2_CHECK( p ) BOOST_CHECK( p )
-#include <libs/assign/v2/test/csv.cpp>
-
-#include <boost/test/unit_test.hpp>
-using boost::unit_test::test_suite;
-test_suite* init_unit_test_suite( int argc, char* argv[] )
-{
- test_suite* test = BOOST_TEST_SUITE( "BOOST_ASSIGN_V2" );
- using namespace test_assign_v2;
- {
- test->add( BOOST_TEST_CASE( &xxx_csv::test ) );
- }
- return test;
-}
-
-#endif // LIBS_ASSIGN_V2_TEST_UNIT_TEST_CSV_ER_2010_CPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/libs/assign/v2/tutorial.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/tutorial.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/tutorial.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -38,9 +38,10 @@
             std::vector<int> numeric( 10 ); iota( numeric, 0 );
             typedef std::string str_; typedef variant< int, str_ > data_;
             array<data_, 16> keypad;
- put( keypad )
- ( "+" )( "-" )( "*" )( "/" )( "=" )( "." )
- ( as_arg_list( numeric ) );
+ csv_put( keypad
+ , "+", "-", "*", "/", "=", "."
+ , as_arg_list( numeric )
+ );
 
             assert( get<str_>( keypad.front() ) == "+" );
             assert( get<int>( keypad.back() ) == 9 );
@@ -105,11 +106,11 @@
         {
             //[tutorial_data_gen
             typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
             std::map<int, word_> map;
- put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 1, foo, 3 )( 2, bar )( 3, baz, 3, 3 )( 4, "qux");
+ put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 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" );


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