$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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" );