$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r69911 - in sandbox/assign_v2: boost/assign/v2/put boost/assign/v2/put/adapter boost/assign/v2/put/container boost/assign/v2/put/deque boost/assign/v2/put/fun boost/assign/v2/put/fun/modulo boost/assign/v2/put/modifier boost/assign/v2/put/modifier/deduce boost/assign/v2/put/modifier/insert boost/assign/v2/put/modifier/iterate boost/assign/v2/put/modifier/lookup boost/assign/v2/put/modifier/modulo boost/assign/v2/put/modifier/push boost/assign/v2/put/modifier/push_back boost/assign/v2/put/modifier/push_front boost/assign/v2/put/modifier/repeat libs/assign/v2/test libs/assign/v2/test/put libs/assign/v2/test/put/modifier libs/assign/v2/test/put/pipe libs/assign/v2/test/put/pipe/modifier
From: erwann.rogard_at_[hidden]
Date: 2011-03-12 21:11:50
Author: e_r
Date: 2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
New Revision: 69911
URL: http://svn.boost.org/trac/boost/changeset/69911
Log:
upd assign_v2
Text files modified: 
   sandbox/assign_v2/boost/assign/v2/put/adapter.hpp                   |     2                                         
   sandbox/assign_v2/boost/assign/v2/put/adapter/as_arg_list.hpp       |    29 +++--                                   
   sandbox/assign_v2/boost/assign/v2/put/adapter/crtp.hpp              |   122 ++++++++++++++++++++++----              
   sandbox/assign_v2/boost/assign/v2/put/adapter/modifier.hpp          |     9 +                                       
   sandbox/assign_v2/boost/assign/v2/put/adapter/replace_parameter.hpp |     3                                         
   sandbox/assign_v2/boost/assign/v2/put/adapter/sub.hpp               |    95 --------------------                    
   sandbox/assign_v2/boost/assign/v2/put/container/adapter.hpp         |     2                                         
   sandbox/assign_v2/boost/assign/v2/put/container/put.hpp             |     4                                         
   sandbox/assign_v2/boost/assign/v2/put/deque/adapter.hpp             |     2                                         
   sandbox/assign_v2/boost/assign/v2/put/deque/deque.hpp               |     2                                         
   sandbox/assign_v2/boost/assign/v2/put/fun.hpp                       |   185 +++++++++++++++++++++++++++++++++++++++ 
   sandbox/assign_v2/boost/assign/v2/put/fun/constructor.hpp           |    18 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/fun/identity.hpp              |    34 -------                                 
   sandbox/assign_v2/boost/assign/v2/put/fun/modulo.hpp                |    17 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/fun/modulo/keyword.hpp        |    47 ---------                               
   sandbox/assign_v2/boost/assign/v2/put/fun/modulo/make.hpp           |    65 -------------                           
   sandbox/assign_v2/boost/assign/v2/put/fun/modulo/meta.hpp           |    48 ----------                              
   sandbox/assign_v2/boost/assign/v2/put/fun/new.hpp                   |    18 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/modifier/deduce.hpp           |   119 +++++++++++++++++++++++++               
   sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/dependee.hpp  |    18 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/tag.hpp       |    78 ----------------                        
   sandbox/assign_v2/boost/assign/v2/put/modifier/insert.hpp           |     5                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/insert/tag.hpp       |    17 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/modifier/iterate.hpp          |     3                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/iterate/impl.hpp     |     6                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/lookup.hpp           |     3                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/lookup/impl.hpp      |     6                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/modulo.hpp           |     6                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/keyword.hpp   |    51 ----------                              
   sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/make.hpp      |    80 -----------------                       
   sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/meta.hpp      |    89 -------------------                     
   sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/standard.hpp  |    98 --------------------                    
   sandbox/assign_v2/boost/assign/v2/put/modifier/push.hpp             |     5                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/push/tag.hpp         |    17 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/modifier/push_back.hpp        |     6                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/push_back/tag.hpp    |    17 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/modifier/push_front.hpp       |     5                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/push_front/tag.hpp   |    17 ---                                     
   sandbox/assign_v2/boost/assign/v2/put/modifier/repeat.hpp           |     3                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/repeat/impl.hpp      |     8                                         
   sandbox/assign_v2/boost/assign/v2/put/modifier/standard.hpp         |     2                                         
   sandbox/assign_v2/boost/assign/v2/put/modulo.hpp                    |     2                                         
   sandbox/assign_v2/libs/assign/v2/test/mix.cpp                       |     2                                         
   sandbox/assign_v2/libs/assign/v2/test/put/container.cpp             |    14 +-                                      
   sandbox/assign_v2/libs/assign/v2/test/put/fun.cpp                   |     2                                         
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.cpp       |     2                                         
   sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.cpp     |    22 ++--                                    
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/fun.cpp              |     2                                         
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/modifier/lookup.cpp  |     2                                         
   49 files changed, 511 insertions(+), 898 deletions(-)
Modified: sandbox/assign_v2/boost/assign/v2/put/adapter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/adapter.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/adapter.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,10 +9,8 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_ADAPTER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_ADAPTER_ER_2010_HPP
-
 #include <boost/assign/v2/put/adapter/crtp.hpp>
 #include <boost/assign/v2/put/adapter/modifier.hpp>
 #include <boost/assign/v2/put/adapter/replace_parameter.hpp>
-#include <boost/assign/v2/put/adapter/sub.hpp>
 
 #endif // BOOST_ASSIGN_V2_PUT_ADAPTER_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/adapter/as_arg_list.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/adapter/as_arg_list.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/adapter/as_arg_list.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_ADAPTER_AS_ARG_LIST_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_ADAPTER_AS_ARG_LIST_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/range/iterator.hpp>
 #include <boost/range/iterator_range.hpp>
 
@@ -20,15 +21,16 @@
     template<typename R>
     class as_arg_list_adapter
     {
-        
+  
         typedef typename boost::range_iterator<R>::type ri_;
         typedef boost::iterator_range<ri_> ir_;
-        
         public:
         
-        as_arg_list_adapter(R& range):ir( 
-            boost::make_iterator_range( range )
-        ){}
+        as_arg_list_adapter(R& range)
+            :ir( 
+                boost::make_iterator_range( range )
+            )
+        {}
         
         typedef ir_ result_type;
         
@@ -37,31 +39,36 @@
         private:
         as_arg_list_adapter();      
         ir_ ir;  
+
     };
 
+//[syntax_put_adapter_as_arg_list
 namespace result_of{
 
     template<typename R>
-    struct as_arg_list{ 
-        typedef as_arg_list_adapter<R> type; 
+    struct as_arg_list
+    { 
+        typedef/*<-*/ BOOST_ASSIGN_V2_IGNORE(/*->*/ unspecified /*<-*/) as_arg_list_adapter<R> /*->*/type; 
     };
 
 }// result_of
 
     template<typename R>
     typename result_of::as_arg_list<R>::type
-    as_arg_list(R& range)
+    as_arg_list(R& range)/*<-*/
     {
+
         return typename result_of::as_arg_list<R>::type( range );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
     
     template<typename R>
     typename result_of::as_arg_list<R const>::type
-    as_arg_list(R const& range)
+    as_arg_list(R const& range)/*<-*/
     {
         return typename result_of::as_arg_list<R const>::type( range );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//]
 }// put_aux
     using put_aux::as_arg_list;
 namespace result_of{
Modified: sandbox/assign_v2/boost/assign/v2/put/adapter/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/adapter/crtp.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/adapter/crtp.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -11,10 +11,12 @@
 #define BOOST_ASSIGN_V2_PUT_ADAPTER_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>
 #include <boost/assign/v2/detail/traits/container/is_ptr_container.hpp>
 #include <boost/assign/v2/put/adapter/as_arg_list.hpp>
 #include <boost/assign/v2/put/adapter/fwd.hpp>
 #include <boost/assign/v2/put/adapter/modifier.hpp>
+#include <boost/concept_check.hpp>
 #include <boost/mpl/always.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/range/algorithm/for_each.hpp>
@@ -52,13 +54,11 @@
     struct modifier_holder{
 
         typedef Tag modifier_tag;
-        typedef put_aux::modifier<Tag> modifier_type;
+        typedef put_aux::adapter_modifier<Tag> modifier_type;
 
         modifier_holder(){}
         modifier_holder(modifier_type const& m) : modifier( m ){}
 
-        typedef put_aux::modifier<Tag> modifier_;
-
         modifier_type modifier;
 
     };
@@ -78,7 +78,7 @@
         result_type operator()( T&& t )const
         {
             this->d_(
-                /*<< Instance of F >>*/ this->fun( std::forward<Args>(args)... )
+                this->fun( std::forward<Args>(args)... )
             );
             return (*this);
         }
@@ -101,12 +101,45 @@
         D const& d_;
         
     };
+}//put_aux
+//[syntax_put_adapter_crtp
+namespace put_aux{
+
+    template<typename C, typename D>
+    struct ConceptAdapter1{
+
+        BOOST_CONCEPT_USAGE(ConceptAdapter1)
+        {
+            D derived( cont );
+            C& ref = derived.container();
+        }
+
+        private:
+        static C& cont;
+
+    };
 
-    // D has to model concept_sub::Pre3, with respect to container C, functor F
-    // and Tag. It then models concept_sub::Post
     template<typename C, typename F, typename Tag, typename D>
+    struct ConceptAdapter2 : ConceptAdapter1<C, D>{
+
+        typedef put_aux::adapter_modifier<Tag> modifier_;
+
+        BOOST_CONCEPT_USAGE(ConceptAdapter2)
+        {
+            D derived( cont, f, m );
+        }
+
+        private:
+        static C& cont;
+        static F const &f;
+        static modifier_ m;
+
+    };
+
+    template<typename /*<<Container>>*/C, typename /*<<Functor>>*/F, typename /*<<Modifier tag>>*/Tag, typename /*<<Derived type>>*/D>
     class crtp 
-    	: public fun_holder<F>
+//<-
+        : public fun_holder<F>
         , public modifier_holder<Tag>
 #if !BOOST_ASSIGN_V2_ENABLE_CPP0X
         , public functor_aux::crtp_unary_and_up<
@@ -114,10 +147,10 @@
             ::boost::mpl::always< D const& >
         >
 #endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
     {
-
+//<-
         public:
-
         D & derived(){ return static_cast<D&>(*this); }
         D const& derived()const{ return static_cast<D const&>(*this); }
 
@@ -125,36 +158,42 @@
 
         typedef fun_holder<F> fun_holder_;
         typedef modifier_holder<Tag> modifier_holder_;
-        typedef typename modifier_holder_::modifier_type modifier_;
+//->
 
         public:
 
+        typedef 
+        	/*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/ adapter_modifier<Tag> /*<-*/)
+            	typename modifier_holder_::modifier_type /*->*/
+        modifier_type;
 
         crtp(){}
-        explicit crtp( F const& f ) : fun_holder_( f ){}
-        explicit crtp( F const& f, modifier_ const& m )
-            : fun_holder_( f ), modifier_holder_( m ){}
+        explicit crtp( F const& f )/*<-*/ : fun_holder_( f ){}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        explicit crtp( F const& f, modifier_type const& m )/*<-*/
+            : fun_holder_( f ), modifier_holder_( m ){}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
         typedef D const& result_type;
 
         template<typename R>
         result_type 
-        operator()( as_arg_list_adapter<R> range )const
+        operator()( as_arg_list_adapter<R> range )const/*<-*/
         {
              return ::boost::for_each( range(), wrapper<D>( this->derived() ) ); 
-        }
-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//<-
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
 
         template<typename...Args>
-        result_type operator()( Args&&...args )const
+        result_type operator()( Args&&...args )const/*<-*/
         {
             return  this->modify(
                 /*<< Instance of F >>*/ this->fun( std::forward<Args>(args)... )
             );
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//<-
 #else
         protected:
         typedef functor_aux::crtp_unary_and_up<
@@ -225,7 +264,7 @@
         result_type modify(T&& t)const
         {
             check_modifier( t );
-            /*<< Instance of put_aux::modifier<Tag> >>*/this->modifier.impl(
+            /*<< Instance of put_aux::adapter_modifier<Tag> >>*/this->modifier.impl(
                 /*<< Reference to C >>*/this->derived().container(),
                 std::forward<T>( t )
             );
@@ -250,12 +289,57 @@
 
 #endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
 
+//->
+
     };
 
 }// put_aux
+//]
 }// v2
 }// assign
 }// boost
 
 #endif // BOOST_ASSIGN_V2_PUT_ADAPTER_CRTP_ER_2010_HPP
 
+//[semantics_put_adapter_crtp
+/*`
+[*Notation]
+
+[variablelist 
+    [
+        [`cont`]
+        [ Instance of `C`, supplied by the derived class  ]
+    ]
+    [
+        [`f`]
+        [ Internal copy of instance of type `F`]
+    ]
+    [
+        [`__put_modifier__`]
+        [ Internal copy of instance of type `put_aux::adapter_modifier<Tag>`]
+    ]
+    [
+        [`__put_adapter__`]
+        [ Instance of `D`  ]
+    ]
+]
+
+[*Expressions]
+
+[table
+    [[Expression][Side effect][Result]]
+    [    
+        [ `__put_adapter__( args... ) ` ]
+        [ `__put_modifier__.impl( cont, f( args... ) )` ]
+        [ A reference to `__put_adapter__` ]
+    ]
+    [    
+        [ `__put_adapter__( as_arg_list( range ) ) ` ]
+        [ `__put_adapter__( arg )` for each `arg` in `range` ]
+        [ A reference to `__put_adapter__`]
+    ]
+]
+
+*/
+//]
+
Modified: sandbox/assign_v2/boost/assign/v2/put/adapter/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/adapter/modifier.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/adapter/modifier.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,17 +9,18 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_ADAPTER_MODIFIER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_ADAPTER_MODIFIER_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/concept_check.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
-//[frame_modifier
-namespace /*<< Template arguments to put_aux::modifier<> are declared within >>*/modifier_tag{}
+//[syntax_put_adapter_modifier
+namespace /*<< Template arguments to `put_aux::adapter_modifier<>` have to be declared within this `namespace`>>*/modifier_tag{}
 namespace put_aux{
 
     template<typename Tag>
-    struct /*<<Specialize on Tag>>*/ modifier{};
+    struct /*<<Specialize on Tag>>*/ adapter_modifier{};
 
 }
 namespace put_concept{
@@ -34,7 +35,7 @@
         }
 
         private:
-        static put_aux::modifier<Tag>& m;
+        static put_aux::adapter_modifier<Tag>& m;
         static C& cont;
         static T t;
     };
Modified: sandbox/assign_v2/boost/assign/v2/put/adapter/replace_parameter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/adapter/replace_parameter.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/adapter/replace_parameter.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,12 +9,13 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_ADAPTER_REPLACE_PARAMETER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_ADAPTER_REPLACE_PARAMETER_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/mpl/apply.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
-//[replace_parameter
+//[syntax_put_adapter_replace_parameter
 namespace put_aux{
                 
     template<typename /*<<Inherits crtp\<\> >>*/D> 
Modified: sandbox/assign_v2/boost/assign/v2/put/adapter/sub.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/adapter/sub.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/adapter/sub.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,94 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_ADAPTER_SUB_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_ADAPTER_SUB_ER_2010_HPP
-#include <boost/assign/v2/put/adapter/modifier.hpp>
-#include <boost/concept_check.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace put_concept{
-namespace sub{
-
-    // X models Pre1 wrt to V
-    template<typename C, typename X>
-    struct Pre1{
-
-        BOOST_CONCEPT_USAGE(Pre1)
-        {
-            X x( v );
-            C& ref = x.container();
-        }
-
-        private:
-        static C& v;
-
-    };
-
-    template<typename C, typename F, typename X>
-    struct Pre2 : Pre1<C, X>{
-
-        BOOST_CONCEPT_USAGE(Pre2)
-        {
-            X x( v, f );
-        }
-
-        private:
-        static C& v;
-        static F const &f;
-
-    };
-
-    template<typename C, typename F, typename Tag, typename X>
-    struct Pre3 : Pre2<C, F, X>{
-
-        typedef put_aux::modifier<Tag> modifier_;
-
-        BOOST_CONCEPT_USAGE(Pre3)
-        {
-            X x( v, f, m );
-        }
-
-        private:
-        static C& v;
-        static F const &f;
-        static modifier_ m;
-
-    };
-
-    template<typename C, typename F, typename Tag, typename X>
-    class Post : Pre3<C, F, Tag, X>
-    {
-
-        typedef Pre3<C, F, Tag, X> super_t;
-        typedef typename super_t::modifier_ modifier_;
-
-        BOOST_CONCEPT_USAGE(Post)
-        {
-            F const& f = x.fun;
-            modifier_ const& m = x.modifier;
-        }
-
-        private:
-        static X const& x;
-        static C& v;
-        static F const &f;
-        static modifier_ m;
-
-    };
-
-}// sub
-}// put_concept
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_ADAPTER_SUB_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/container/adapter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/container/adapter.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/container/adapter.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -33,7 +33,7 @@
 
         protected:
 
-        typedef put_aux::modifier<Tag> modifier_;
+        typedef put_aux::adapter_modifier<Tag> modifier_;
         typedef ref::assign_tag::copy assign_tag_;
         typedef ref::wrapper<assign_tag_,C> super1_t;
 
Modified: sandbox/assign_v2/boost/assign/v2/put/container/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/container/put.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/container/put.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -12,12 +12,13 @@
 #include <boost/assign/v2/put/container/fwd.hpp>
 #include <boost/assign/v2/put/container/adapter.hpp>
 #include <boost/assign/v2/put/fun/deduce.hpp>
-#include <boost/assign/v2/put/modifier/deduce/tag.hpp>
+#include <boost/assign/v2/put/modifier/deduce.hpp>
 #include <boost/assign/v2/put/modifier/deduce/dependee.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
+//synopsis_put_container
 namespace result_of{
 
     template<typename C>
@@ -38,6 +39,7 @@
         return result_( cont );
     }
 
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/put/deque/adapter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque/adapter.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque/adapter.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -39,7 +39,7 @@
         typedef impl_ const cimpl_;
         typedef crtp<impl_, F, Tag, deque_adapter> put_crtp_;
 
-        typedef put_aux::modifier<Tag> modifier_;
+        typedef put_aux::adapter_modifier<Tag> modifier_;
 
         public:
 
Modified: sandbox/assign_v2/boost/assign/v2/put/deque/deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/deque/deque.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/deque/deque.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -12,7 +12,7 @@
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #include <boost/assign/v2/detail/keyword/nil.hpp>
 #include <boost/assign/v2/put/fun/deduce.hpp>
-#include <boost/assign/v2/put/modifier/deduce/tag.hpp>
+#include <boost/assign/v2/put/modifier/deduce.hpp>
 #include <boost/assign/v2/put/modifier/deduce/dependee.hpp>
 //#include <boost/assign/v2/put/deque/fwd.hpp>
 #include <boost/assign/v2/put/deque/adapter.hpp>
Modified: sandbox/assign_v2/boost/assign/v2/put/fun.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,8 +9,187 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_FUN_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_FUN_ER_2010_HPP
-#include <boost/assign/v2/put/fun/constructor.hpp>
-#include <boost/assign/v2/put/fun/identity.hpp>
-#include <boost/assign/v2/put/fun/new.hpp>
+#include <boost/assign/v2/detail/pp/ignore.hpp>
+#include <boost/assign/v2/detail/keyword/ignore.hpp>
+#include <boost/assign/v2/put/adapter/fwd.hpp>
+#include <boost/assign/v2/put/adapter/replace_parameter.hpp>
+#include <boost/assign/v2/put/fun/modulo/meta.hpp>
+#include <boost/mpl/apply.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_aux{
+namespace result_of{
+
+    template<typename D>
+    struct modulo_fun{
+            
+        typedef put_aux::replace_fun<D> meta_;
+            
+        template<typename F>
+        struct apply : ::boost::mpl::apply1<meta_, F>{};
+        
+    };
+            
+}// result_of
+
+    template<typename F = keyword_aux::ignore>
+    struct modulo_fun
+    {
+        modulo_fun(){}
+        modulo_fun(F f) : f_( f ){}
+
+        F const& fun()const{ return this->f_; }
+        
+        private:
+        F f_;
+    };
+
+    template<typename C, typename F, typename Tag, typename D, typename F1>
+    typename ::boost::mpl::apply1<result_of::modulo_fun<D>, F1>::type
+    operator%(
+        crtp<C, F, Tag, D> const& lhs,
+        modulo_fun<F1> const& rhs
+    )
+    {
+        typedef result_of::modulo_fun<D> meta_;
+        typedef typename ::boost::mpl::apply1<meta_, F1>::type result_;
+        return result_( lhs.container(), rhs.fun(), lhs.modifier );
+    }
+
+    struct keyword_fun{
+    
+        template<typename F>
+        modulo_fun<F> operator=(F const& f)const{ 
+            return modulo_fun<F>( f ); 
+        }
+    
+    };
+
+}// put_aux
+namespace{
+    const put_aux::keyword_fun _fun = put_aux::keyword_fun();
+}
+//[syntax_put_fun
+namespace result_of{
+
+    template<typename D>
+    struct modulo_fun 
+//<-
+        : put_aux::result_of::modulo_fun<D>
+//->
+    {};
+
+}// result_of
+//]
+
+//[semantics_put_fun
+/*`
+
+[*Notation]
+
+See __link_put_adapter_crtp__.
+
+[*Expressions]
+
+[table
+	[[Expression][Result type][Description]]
+    [
+    	[`__put_adapter__ % ( _fun = f )`]
+        [`::boost::mpl::apply1<result_of::modulo_fun<D>, F>::type`]
+        [Replaces `__put_adapter__`'s functor with `f`]
+    ]
+]
+*/
+//]
+
+}// v2
+}// assign
+}// boost
+
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_ASSIGN_V2_PUT_FUN_alias(NAME, FUN)\
+namespace boost{\
+namespace assign{\
+namespace v2{\
+namespace put_aux{\
+\
+	template<typename T>\
+	modulo_fun< FUN > BOOST_PP_CAT(_,NAME)(){ return v2::_fun = FUN(); }\
+\
+}\
+using put_aux::BOOST_PP_CAT(_,NAME);\
+}\
+}\
+}\
+/**/
+
+#include <boost/assign/v2/detail/functor/constructor.hpp>
+#define BOOST_ASSIGN_V2_fun functor_aux::constructor<T>
+BOOST_ASSIGN_V2_PUT_FUN_alias(constructor, BOOST_ASSIGN_V2_fun)
+#undef BOOST_ASSIGN_V2_fun
+
+#include <boost/assign/v2/detail/functor/new.hpp>
+#define BOOST_ASSIGN_V2_fun functor_aux::new_<T>
+BOOST_ASSIGN_V2_PUT_FUN_alias(new, BOOST_ASSIGN_V2_fun)
+#undef BOOST_ASSIGN_V2_fun
+
+#undef BOOST_ASSIGN_V2_PUT_FUN_alias
+
+#include <boost/lambda/lambda.hpp>
+#include <boost/typeof/typeof.hpp>
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_aux{
+
+    typedef BOOST_TYPEOF( ( _fun = ::boost::lambda::_1 ) ) keyword_identity;
+
+}// put_aux
+namespace {
+    
+    put_aux::keyword_identity const _identity  = ( _fun = ::boost::lambda::_1 );
+
+}
+}// v2
+}// assign
+}// boost
+
+
+//[aliases_put_fun
+/*`
+[*Synopsis]
+``
+const __unspecified__ _construct;
+const __unspecified__ _identity;
+const __unspecified__ _new;
+``
+
+[*Notation]
+
+See __link_put_adapter_crtp__.
+
+[*Semantics]
+
+[table
+	[[Expression][Result type]]
+    [
+    	[`__put_adapter__ % _identity`]
+        [Replaces `__put_adapter__`'s functor with an identity functor]
+    ]
+    [
+    	[`__put_adapter__ % _constructor<T>()`]
+        [Replaces `__put_adapter__`'s functor with a constructor for `T`]
+    ]
+    [
+    	[`__put_adapter__ % _new<T>()`]
+        [Replaces `__put_adapter__`'s functor with a functor returning a pointer for `T`]
+    ]
+]
+*/
+//]
+
 
 #endif // BOOST_ASSIGN_V2_PUT_FUN_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/fun/constructor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun/constructor.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun/constructor.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,17 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_FUN_CONSTRUCTOR_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_FUN_CONSTRUCTOR_ER_2010_HPP
-#include <boost/assign/v2/detail/functor/constructor.hpp>
-#include <boost/assign/v2/put/fun/modulo/keyword.hpp>
-
-BOOST_ASSIGN_V2_MODULO_FUN_KEYWORD(constructor, keyword_aux::constructor<T>)
-
-#endif // BOOST_ASSIGN_V2_PUT_FUN_CONSTRUCTOR_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/fun/identity.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun/identity.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun/identity.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,33 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_FUN_IDENTITY_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_FUN_IDENTITY_ER_2010_HPP
-#include <boost/lambda/lambda.hpp>
-#include <boost/typeof/typeof.hpp>
-#include <boost/assign/v2/put/fun/modulo.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace put_aux{
-
-	typedef BOOST_TYPEOF( ( _fun = ::boost::lambda::_1 ) ) result_of_identity;
-
-}// put_aux
-namespace {
-	
-    put_aux::result_of_identity const _identity 
-    	= ( _fun = ::boost::lambda::_1 );
-}
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_FUN_IDENTITY_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/fun/modulo.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun/modulo.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun/modulo.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_FUN_MODULO_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_FUN_MODULO_ER_2010_HPP
-#include <boost/assign/v2/put/fun/modulo/keyword.hpp>
-#include <boost/assign/v2/put/fun/modulo/make.hpp>
-#include <boost/assign/v2/put/fun/modulo/meta.hpp>
-
-#endif
\ No newline at end of file
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/fun/modulo/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun/modulo/keyword.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun/modulo/keyword.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,46 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_FUN_MODULO_KEYWORD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_FUN_MODULO_KEYWORD_ER_2010_HPP
-#include <boost/assign/v2/put/fun/modulo/make.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define BOOST_ASSIGN_V2_MODULO_FUN_KEYWORD(NAME, FUN)\
-namespace boost{\
-namespace assign{\
-namespace v2{\
-namespace put_aux{\
-\
-    struct BOOST_PP_CAT(keyword_,NAME){\
-\
-        BOOST_PP_CAT(keyword_,NAME)(){}\
-\
-        template<typename T>\
-        struct result{\
-            typedef modulo_fun< FUN > type;\
-        };\
-\
-        template<typename T>\
-        typename result<T>::type\
-        operator()()const{ return ( v2::_fun = FUN() ); }\
-\
-    };\
-\
-}\
-namespace {\
-    put_aux::BOOST_PP_CAT(keyword_,NAME) const BOOST_PP_CAT(_,NAME)\
-        = put_aux::BOOST_PP_CAT(keyword_,NAME);\
-}\
-}\
-}\
-}\
-/**/
-
-#endif // BOOST_ASSIGN_V2_PUT_FUN_MODULO_KEYWORD_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/fun/modulo/make.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun/modulo/make.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun/modulo/make.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,64 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_FUN_MODULO_MAKE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_FUN_MODULO_MAKE_ER_2010_HPP
-#include <boost/assign/v2/detail/keyword/ignore.hpp>
-#include <boost/assign/v2/put/adapter/fwd.hpp>
-#include <boost/assign/v2/put/fun/modulo/meta.hpp>
-#include <boost/mpl/apply.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace put_aux{
-    
-    template<typename F = keyword_aux::ignore>
-    struct modulo_fun
-    {
-        modulo_fun(){}
-        modulo_fun(F f) : f_( f ){}
-
-        F const& fun()const{ return this->f_; }
-        
-        private:
-        F f_;
-    };
-
-    struct keyword_fun{
-    
-        template<typename F>
-        modulo_fun<F> operator=(F const& f)const{ 
-            return modulo_fun<F>( f ); 
-        }
-    
-    };
-
-    template<typename C, typename F, typename Tag, typename D, typename F1>
-    typename ::boost::mpl::apply1<result_of::modulo_fun<D>, F1>::type
-    operator%(
-        crtp<C, F, Tag, D> const& lhs,
-        modulo_fun<F1> const& rhs
-    )
-    {
-        typedef result_of::modulo_fun<D> meta_;
-        typedef typename ::boost::mpl::apply1<meta_, F1>::type result_;
-        return result_( lhs.container(), rhs.fun(), lhs.modifier );
-    }
-
-
-}// put_aux
-namespace{
-    const put_aux::keyword_fun _fun = put_aux::keyword_fun();
-}
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_FUN_MODULO_MAKE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/fun/modulo/meta.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun/modulo/meta.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun/modulo/meta.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,47 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_FUN_MODULO_META_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_FUN_MODULO_META_ER_2010_HPP
-#include <boost/mpl/apply.hpp>
-#include <boost/assign/v2/put/adapter/replace_parameter.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace put_aux{
-namespace result_of{
-
-    template<typename D>
-    struct modulo_fun{
-            
-        typedef put_aux::replace_fun<D> meta_;
-            
-        template<typename F>
-        struct apply : ::boost::mpl::apply1<meta_, F>{};
-        
-    };
-            
-}// result_of
-}// put_aux
-//[result_of_modulo_fun
-namespace result_of{
-
-    template<typename /*<<Inherits crtp\<\> >>*/ D>
-    struct /*<<Meta-function class>>*/ modulo_fun 
-        : put_aux::result_of::modulo_fun<D>
-    {};
-
-}// result_of
-//]
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_FUN_MODULO_META_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/put/fun/new.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/fun/new.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/fun/new.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,17 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_FUN_NEW_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_FUN_NEW_ER_2010_HPP
-#include <boost/assign/v2/detail/functor/new.hpp>
-#include <boost/assign/v2/put/fun/modulo/keyword.hpp>
-
-BOOST_ASSIGN_V2_MODULO_FUN_KEYWORD(new, keyword_aux::new_<T>)
-
-#endif // BOOST_ASSIGN_V2_PUT_FUN_NEW_ER_2010_HPP
+// TOOD remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/deduce.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/deduce.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/deduce.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,7 +9,122 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/deduce/dependee.hpp>
-#include <boost/assign/v2/put/modifier/deduce/tag.hpp>
+#include <boost/assign/v2/put/modifier/insert/tag.hpp>
+#include <boost/assign/v2/put/modifier/iterate/tag.hpp>
+#include <boost/assign/v2/put/modifier/push/tag.hpp>
+#include <boost/assign/v2/put/modifier/push_back/tag.hpp>
+
+#include <boost/assign/v2/put/modifier/insert.hpp>
+#include <boost/assign/v2/put/modifier/iterate.hpp>
+#include <boost/assign/v2/put/modifier/push.hpp>
+#include <boost/assign/v2/put/modifier/push_back.hpp>
+
+#include <boost/assign/v2/detail/pp/ignore.hpp>
+#include <boost/assign/v2/detail/traits/container/has_push.hpp>
+#include <boost/assign/v2/detail/traits/container/is_associative.hpp>
+#include <boost/assign/v2/detail/traits/container/is_array.hpp>
+#include <boost/assign/v2/detail/traits/switch.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/type_traits/is_same.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace switch_tag{
+    struct deduce_put{};
+}// switch_tag
+
+#ifdef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_CASE
+#error
+#else
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_CASE(Tag, MetaFun, Number)\
+namespace switch_aux{\
+    template<>\
+    struct case_<switch_tag::deduce_put, Number> :\
+        switch_aux::helper<\
+            v2::modifier_tag::Tag,\
+            MetaFun\
+        >{};\
+}\
+/**/
+#endif
+
+#ifdef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ASSOCIATIVE
+#error
+#else
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ASSOCIATIVE(CaseNumber)\
+BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_CASE(insert, container_traits::is_associative, CaseNumber)\
+/**/ 
+#endif
+
+#ifdef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ARRAY
+#error
+#else
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ARRAY(CaseNumber)\
+BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_CASE(iterate<>, container_traits::is_array, CaseNumber)
+/**/
+#endif
+
+#ifdef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ADAPTER
+#error
+#else
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ADAPTER(CaseNumber)\
+BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_CASE(push, container_traits::has_push_deduced_value, CaseNumber)
+/**/
+#endif
+
+#ifdef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_DEFAULT
+#error
+#else
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_DEFAULT(CaseNumber)\
+namespace switch_aux{\
+    template<>\
+    struct case_<switch_tag::deduce_put, CaseNumber> :\
+        switch_aux::helper<v2::modifier_tag::push_back>\
+    {};\
+}\
+/**/
+#endif
+
+//[example_put_modifier_deduce_switch
+#ifdef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH
+#warning  
+#else
+BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ASSOCIATIVE(0)
+BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ARRAY(1)
+BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_ADAPTER(2)
+BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH_DEFAULT(3)
+#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_SWITCH 
+//]
+#endif
+
+//[syntax_put_modifier_deduce
+namespace put_aux{
+
+    template<typename C>
+    struct /*<<Meta-function returning a modifier-tag>>*/deduce_modifier_tag
+//<-    
+        : switch_aux::result< switch_tag::deduce_put, C>
+//->
+    {};
+
+}// put_aux
+//]
+
+namespace put_aux{
+
+    // For testing purposes
+    template<typename C, typename X>
+    void check_deduce()
+    {
+        typedef typename put_aux::deduce_modifier_tag<C>::type found_;
+        BOOST_MPL_ASSERT(( boost::is_same<found_, X> ));
+    }
+
+}// put_aux
+}// v2
+}// assign
+}// boost
 
 #endif // BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/dependee.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/dependee.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/dependee.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,17 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_DEPENDEE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_DEPENDEE_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/insert.hpp>
-#include <boost/assign/v2/put/modifier/iterate.hpp>
-#include <boost/assign/v2/put/modifier/push.hpp>
-#include <boost/assign/v2/put/modifier/push_back.hpp>
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_DEPENDEE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/tag.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/deduce/tag.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,77 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_TAG_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_TAG_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/insert/tag.hpp>
-#include <boost/assign/v2/put/modifier/iterate/tag.hpp>
-#include <boost/assign/v2/put/modifier/push/tag.hpp>
-#include <boost/assign/v2/put/modifier/push_back/tag.hpp>
-#include <boost/assign/v2/detail/traits/container/has_push.hpp>
-#include <boost/assign/v2/detail/traits/container/is_associative.hpp>
-#include <boost/assign/v2/detail/traits/container/is_array.hpp>
-#include <boost/assign/v2/detail/traits/switch.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace switch_tag{
-    struct deduce_put{};
-}// switch_tag
-namespace switch_aux{
-
-    template<>
-    struct case_<switch_tag::deduce_put, 0> :
-        switch_aux::helper<
-            v2::modifier_tag::insert,
-            v2::container_traits::is_associative
-        >{};
-
-    template<>
-    struct case_<switch_tag::deduce_put, 1> :
-        switch_aux::helper<
-            v2::modifier_tag::iterate<>,
-            v2::container_traits::is_array
-        >{};
-
-    template<>
-    struct case_<switch_tag::deduce_put, 2> :
-        switch_aux::helper<
-            v2::modifier_tag::push,
-            container_traits::has_push_deduced_value
-        >{};
-
-    template<>
-    struct case_<switch_tag::deduce_put, 3> :
-        switch_aux::helper<v2::modifier_tag::push_back>{};
-
-}// switch_aux
-namespace put_aux{
-
-    template<typename T>
-    struct deduce_modifier_tag
-        : switch_aux::result< switch_tag::deduce_put, T>
-    {};
-
-    // For testing purposes
-    template<typename C, typename X>
-    void check_deduce()
-    {
-        typedef typename put_aux::deduce_modifier_tag<C>::type found_;
-        BOOST_MPL_ASSERT(( boost::is_same<found_, X> ));
-    }
-
-}// put_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_DEDUCE_TAG_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/insert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/insert.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/insert.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,8 +9,11 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_INSERT_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_INSERT_ER_2010_HPP
+//[put_modifier_insert
+#include <boost/assign/v2/put/modifier/standard/modifier.hpp>
+BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(insert)
 #include <boost/assign/v2/put/modifier/insert/tag.hpp>
-
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD(insert)
+//]
 
 #endif // BOOST_ASSIGN_V2_PUT_MODIFIER_INSERT_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/insert/tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/insert/tag.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/insert/tag.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_INSERT_TAG_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_INSERT_TAG_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/modulo/standard.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(insert)
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_INSERT_TAG_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/iterate.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/iterate.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/iterate.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -11,10 +11,9 @@
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_ITERATE_ER_2010_HPP
 #include <boost/assign/v2/put/modifier/iterate/impl.hpp>
 #include <boost/assign/v2/put/modifier/iterate/tag.hpp>
-#include <boost/assign/v2/put/modifier/modulo/keyword.hpp>
+#include <boost/assign/v2/put/modifier/modulo/modifier.hpp>
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD(iterate)
 
-#include <boost/assign/v2/put/modifier/modulo/meta.hpp>
 #define BOOST_ASSIGN_V2_TAG modifier_tag::iterate<Arg>
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_MODIFIER_TAG(iterate, BOOST_ASSIGN_V2_TAG)
 #undef BOOST_ASSIGN_V2_TAG
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/iterate/impl.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/iterate/impl.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/iterate/impl.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -27,7 +27,7 @@
 namespace put_aux{
                 
     template<typename Arg>
-    class modifier< modifier_tag::iterate<Arg> >
+    class adapter_modifier< modifier_tag::iterate<Arg> >
     {
 
         typedef keyword_aux::ignore ignore_;
@@ -37,8 +37,8 @@
                     
         public:
                     
-        modifier(): ptr( new arg_() ){}
-        explicit modifier( 
+        adapter_modifier(): ptr( new arg_() ){}
+        explicit adapter_modifier( 
             ignore_,  
             typename boost::call_traits<arg_>::param_type arg 
         ) : ptr( new arg_( arg ) )
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/lookup.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/lookup.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/lookup.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -11,10 +11,9 @@
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_LOOKUP_ER_2010_HPP
 #include <boost/assign/v2/put/modifier/lookup/impl.hpp>
 #include <boost/assign/v2/put/modifier/lookup/tag.hpp>
-#include <boost/assign/v2/put/modifier/modulo/keyword.hpp>
+#include <boost/assign/v2/put/modifier/modulo/modifier.hpp>
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD(lookup)
 
-#include <boost/assign/v2/put/modifier/modulo/meta.hpp>
 #define BOOST_ASSIGN_V2_TAG modifier_tag::lookup<Arg>
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_MODIFIER_TAG(lookup, BOOST_ASSIGN_V2_TAG)
 #undef BOOST_ASSIGN_V2_TAG
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/lookup/impl.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/lookup/impl.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/lookup/impl.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -20,7 +20,7 @@
 namespace v2{namespace put_aux{
                 
     template<typename Arg>
-    class modifier<modifier_tag::lookup<Arg> >
+    class adapter_modifier<modifier_tag::lookup<Arg> >
     {
 
         typedef Arg arg_;
@@ -30,8 +30,8 @@
         
         public:
 
-        modifier() : ptr( new arg_() ){}
-        explicit modifier(
+        adapter_modifier() : ptr( new arg_() ){}
+        explicit adapter_modifier(
             ignore_,
             typename boost::call_traits<arg_>::param_type arg
         ) : ptr( new arg_( arg ) )
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/modulo.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/modulo.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/modulo.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,9 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/modulo/keyword.hpp>
-#include <boost/assign/v2/put/modifier/modulo/make.hpp>
-#include <boost/assign/v2/put/modifier/modulo/meta.hpp>
-#include <boost/assign/v2/put/modifier/modulo/standard.hpp>
+#include <boost/assign/v2/put/modifier/modulo/modifier.hpp>
+#include <boost/assign/v2/put/modifier/standard/modifier.hpp>
 
 #endif
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/keyword.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/keyword.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,50 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/modulo/make.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_PARAM
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_PARAM(NAME)\
-    put_aux::modulo_modifier<put_aux::BOOST_PP_CAT(keyword_,NAME)>\
-/**/
-#endif
-
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD(NAME)\
-namespace boost{\
-namespace assign{\
-namespace v2{\
-namespace put_aux{\
-\
-    struct BOOST_PP_CAT(keyword_,NAME){\
-\
-        BOOST_PP_CAT(keyword_,NAME)(){}\
-\
-    };\
-\
-}\
-namespace {\
-    BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_PARAM(NAME) const BOOST_PP_CAT(_,NAME)\
-        = BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_PARAM(NAME)();\
-}\
-}\
-}\
-}\
-/**/
-#endif
-
-// The default
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD(modifier)    
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_MODIFIER_TAG(modifier, Arg)
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD_ER_2010_HPP
-
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/make.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/make.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/make.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,79 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_MAKE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_MAKE_ER_2010_HPP
-#include <boost/preprocessor/cat.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/assign/v2/detail/keyword/ignore.hpp>
-#include <boost/assign/v2/put/adapter/fwd.hpp>
-#include <boost/assign/v2/put/adapter/modifier.hpp>
-#include <boost/assign/v2/put/modifier/modulo/meta.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[modulo_modifier
-namespace put_aux{
-
-    template<typename /*<<A class of modifiers>>*/ Keyword, typename /*<<A part of the modifier's implementation>>*/Arg = keyword_aux::ignore>
-    struct modulo_modifier
-    {
-        
-        modulo_modifier(){}
-        modulo_modifier(Arg arg):arg_( arg ){}
-        
-        Arg const& arg()const{ return this->arg_; }
-
-        template<typename Arg1>
-        modulo_modifier<Keyword, Arg1>
-        operator=(const Arg1& arg1)const{
-            return modulo_modifier<Keyword, Arg1>( arg1 );
-        }
-        
-        protected:
-        Arg arg_;
-    };
-}//put_aux
-//]
-namespace put_aux{
-
-    template<typename C, typename F, typename Tag, typename D, 
-        typename Keyword, typename Arg>
-    typename ::boost::mpl::apply2<
-        result_of::modulo_modifier<D>, 
-        Keyword, Arg
-    >::type
-    operator%(
-        crtp<C, F, Tag, D> const& lhs,
-        modulo_modifier<Keyword, Arg> const& rhs
-    )
-    {
-        typedef put_aux::meta_modifier_tag<Keyword, Arg> meta_;
-        typedef typename ::boost::mpl::apply1<meta_, D>::type modifier_tag;
-        typedef put_aux::modifier<modifier_tag> modifier_;
-    
-        typedef typename ::boost::mpl::apply2<
-            result_of::modulo_modifier<D>, 
-            Keyword, Arg
-        >::type result_;
-    
-        return result_(
-            lhs.container(),
-            lhs.fun,
-            modifier_( lhs.modifier, rhs.arg() )
-        );
-    }
-
-}// put_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_MAKE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/meta.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/meta.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/meta.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,88 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_ER_2010_HPP
-#include <boost/assign/v2/put/adapter/replace_parameter.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[meta_modifier_tag
-namespace put_aux{
-    
-    template<typename Keyword, typename Arg>
-    struct /*<<Meta-function class to be specialized on Keyword>>*/ meta_modifier_tag
-    {
-        template<typename /*<<Inherits crtp\<\> >>*/ D> 
-        struct /*<<Returns a modifier-tag>>*/ apply;
-    };
-        
-}// put_aux
-//]
-namespace put_aux{
-namespace result_of{
-        
-    template<typename D>
-    struct modulo_modifier{
-            
-        typedef put_aux::replace_modifier_tag<D> meta_;
-            
-        template<typename Keyword, typename Arg>
-        struct apply : ::boost::mpl::apply1<
-            meta_, 
-            typename ::boost::mpl::apply1<
-                put_aux::meta_modifier_tag<Keyword, Arg>, 
-                D
-            >::type
-        >{};
-        
-    };
-            
-}// result_of
-}// put_aux
-//[result_of_modulo_modifier
-namespace result_of{
-
-    template<typename /*<<Inherits crtp\<\> >>*/ D>
-    struct /*<<Meta-function class>>*/ modulo_modifier 
-        : put_aux::result_of::modulo_modifier<D>
-    {};
-
-}// result_of
-//]
-}// v2
-}// assign
-}// boost
-
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_MODIFIER_TAG
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_MODIFIER_TAG(NAME, Result)\
-namespace boost{\
-namespace assign{\
-namespace v2{\
-namespace put_aux{\
-\
-    template<typename Arg>\
-    struct meta_modifier_tag<BOOST_PP_CAT(keyword_,NAME), Arg>\
-    {\
-        template<typename D>\
-        struct apply{ typedef Result type; };\
-    };\
-\
-}\
-}\
-}\
-}\
-/**/
-#endif
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_ER_2010_HPP
-
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/standard.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/standard.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/modulo/standard.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,97 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_ER_2010_HPP
-#include <boost/assign/v2/detail/keyword/ignore.hpp>
-#include <boost/assign/v2/put/adapter/modifier.hpp>
-#include <boost/assign/v2/put/modifier/modulo/keyword.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL_PTR(FUN)\
-    template<typename C, typename T>\
-    void impl(C& cont, T* t)const{\
-    cont.FUN( t );\
-}\
-/**/
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL_LVALUE(FUN)\
-    template<typename C, typename T>\
-    void impl(C& cont, T& t)const{\
-    cont.FUN( t );\
-}\
-/**/
-
-#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <utility>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_reference.hpp>
-// disable_if necessary to avoid ambiguity resolution with GCC4.4
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL_RVALUE(FUN)\
-    template<typename C, typename T>\
-        typename boost::disable_if<\
-        boost::is_reference<T>,\
-        void\
-    >::type\
-    impl(C& cont, T&& t)const{\
-        cont.FUN( std::move( t ) );\
-    }\
-/**/
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL(FUN)\
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL_LVALUE(FUN)\
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL_RVALUE(FUN)\
-/**/
-#else
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL(FUN)\
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL_LVALUE(FUN)\
-/**/
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(FUN)\
-namespace boost{\
-namespace assign{\
-namespace v2{\
-namespace modifier_tag{ struct FUN{}; }\
-}\
-}\
-}\
-/**/
-
-// Must be preceded by BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(FUN)
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD(FUN)\
-namespace boost{\
-namespace assign{\
-namespace v2{\
-namespace put_aux{\
-\
-    template<>\
-    class modifier<modifier_tag::FUN>\
-    {\
-        typedef keyword_aux::ignore ignore_;\
-        public:\
-        modifier(){}\
-        modifier( ignore_, ignore_ ){}\
-        BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_IMPL(FUN)\
-    };\
-\
-}\
-namespace{\
-\
-    put_aux::modulo_modifier<put_aux::keyword_modifier, modifier_tag::FUN> const\
-        BOOST_PP_CAT(_,FUN) = ( \
-        _modifier = modifier_tag::FUN() \
-    );\
-\
-}\
-}\
-}\
-}\
-/**/
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/push.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/push.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/push.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,8 +9,11 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_ER_2010_HPP
+//[put_modifier_push
+#include <boost/assign/v2/put/modifier/standard/modifier.hpp>
+BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(push)
 #include <boost/assign/v2/put/modifier/push/tag.hpp>
-
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD(push)
+//]
 
 #endif // BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/push/tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/push/tag.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/push/tag.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_TAG_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_TAG_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/modulo/standard.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(push)
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_TAG_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/push_back.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/push_back.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/push_back.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,8 +9,10 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_ER_2010_HPP
+//[put_modifier_push_back
 #include <boost/assign/v2/put/modifier/push_back/tag.hpp>
-
+BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(push_back)
+#include <boost/assign/v2/put/modifier/standard/modifier.hpp>
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD(push_back)
-
+//]
 #endif // BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/push_back/tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/push_back/tag.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/push_back/tag.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_TAG_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_TAG_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/modulo/standard.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(push_back)
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_BACK_TAG_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/push_front.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/push_front.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/push_front.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,8 +9,11 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_ER_2010_HPP
+//[put_modifier_push_front
+#include <boost/assign/v2/put/modifier/standard/modifier.hpp>
+BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(push_front)
 #include <boost/assign/v2/put/modifier/push_front/tag.hpp>
-
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD(push_front)
+//]
 
 #endif // BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/push_front/tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/push_front/tag.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/push_front/tag.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -1,16 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_TAG_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_TAG_ER_2010_HPP
-#include <boost/assign/v2/put/modifier/modulo/standard.hpp>
-
-BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_STANDARD_TAG(push_front)
-
-#endif // BOOST_ASSIGN_V2_PUT_MODIFIER_PUSH_FRONT_TAG_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/repeat.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/repeat.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/repeat.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -11,10 +11,9 @@
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_REPEAT_ER_2010_HPP
 #include <boost/assign/v2/put/modifier/repeat/impl.hpp>
 #include <boost/assign/v2/put/modifier/repeat/tag.hpp>
-#include <boost/assign/v2/put/modifier/modulo/keyword.hpp>
+#include <boost/assign/v2/put/modifier/modulo/modifier.hpp>
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_KEYWORD(repeat)
 
-#include <boost/assign/v2/put/modifier/modulo/meta.hpp>
 #define BOOST_ASSIGN_V2_TAG modifier_tag::repeat<typename D::modifier_tag>
 BOOST_ASSIGN_V2_PUT_MODIFIER_MODULO_META_MODIFIER_TAG(repeat, BOOST_ASSIGN_V2_TAG)
 #undef BOOST_ASSIGN_V2_TAG
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/repeat/impl.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/repeat/impl.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/repeat/impl.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -25,16 +25,16 @@
 namespace put_aux{
 
     template<typename Arg>
-    class modifier<modifier_tag::repeat<Arg> >
+    class adapter_modifier<modifier_tag::repeat<Arg> >
     {
-        typedef modifier<Arg> inner_type;
+        typedef adapter_modifier<Arg> inner_type;
 
         public:
 
         typedef std::size_t size_type;
 
-        modifier() : n_( 0 ){}
-        explicit modifier( inner_type inner, size_type n )
+        adapter_modifier() : n_( 0 ){}
+        explicit adapter_modifier( inner_type inner, size_type n )
             : inner_( inner ), n_( n )
         {}
 
Modified: sandbox/assign_v2/boost/assign/v2/put/modifier/standard.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modifier/standard.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modifier/standard.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,9 +9,11 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODIFIER_STANDARD_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODIFIER_STANDARD_ER_2010_HPP
+//[put_modifier_standard
 #include <boost/assign/v2/put/modifier/insert.hpp>
 #include <boost/assign/v2/put/modifier/push.hpp>
 #include <boost/assign/v2/put/modifier/push_back.hpp>
 #include <boost/assign/v2/put/modifier/push_front.hpp>
+//]
 
 #endif // BOOST_ASSIGN_V2_PUT_MODIFIER_STANDARD_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/put/modulo.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put/modulo.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/put/modulo.hpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -9,7 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_PUT_MODULO_ER_2010_HPP
 #define BOOST_ASSIGN_V2_PUT_MODULO_ER_2010_HPP
-#include <boost/assign/v2/put/fun/modulo.hpp>
+#include <boost/assign/v2/put/fun.hpp>
 #include <boost/assign/v2/put/modifier/modulo.hpp>
 
 #endif // BOOST_ASSIGN_V2_PUT_MODULO_ER_2010_HPP
Modified: sandbox/assign_v2/libs/assign/v2/test/mix.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/mix.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/mix.cpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -20,7 +20,7 @@
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/container.hpp>
-#include <boost/assign/v2/put/fun/modulo.hpp>
+#include <boost/assign/v2/put/fun.hpp>
 #include <boost/assign/v2/put/modifier/repeat.hpp>
 #include <boost/assign/v2/put/pipe/csv_put.hpp>
 #include <boost/assign/v2/put/pipe/put.hpp>
Modified: sandbox/assign_v2/libs/assign/v2/test/put/container.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/container.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/container.cpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -59,7 +59,7 @@
              //[put_as_arg_list
             std::vector<int> numeric( 10 ); iota( numeric, 0 ); typedef std::string str_;
             typedef variant< int, str_ > data_; array<data_, 16> numeric_kb;
-            as2::put( numeric_kb )/*<<[^{`numeric_kb[ i ] = data_( t )` : ( i, t ) = ( 0, "+" ), ..., ( 5, "." )}]>>*/( "+" )( "-" )( "*" )( "/" )( "=" )( "." )/*<<[^{`numeric_kb[ 6 + i ] = data_( *( b + i ) )` : i = 0, ..., 9; b = `boost::begin( numeric )` }]>>*/( as2::as_arg_list( numeric ) );
+            as2::put( numeric_kb )/*<<Calls [^{`numeric_kb[ i ] = data_( t )` : ( i, t ) = ( 0, "+" ), ..., ( 5, "." )}]>>*/( "+" )( "-" )( "*" )( "/" )( "=" )( "." )/*<<Calls [^{`numeric_kb[ 6 + i ] = data_( *( b + i ) )` : i = 0, ..., 9; b = `boost::begin( numeric )` }]>>*/( as2::as_arg_list( numeric ) );
 
             assert( get<str_>( numeric_kb.front() ) == "+" );
             assert( get<int>( numeric_kb.back()  ) == 9 );
@@ -81,11 +81,13 @@
                 /*<<Calls `ragged.push_back( variable_size_( 1, -99.99 ) )`>>*/( 1, -99.99 )
                 /*<<Calls `ragged.push_back( variable_size_( ) )`>>*/( );
 
+            assert( ragged[0].size() == a.size() );
+            assert( ragged[3].size() == 0        );
+            //]
             BOOST_ASSIGN_V2_CHECK( ragged[0].size() == a.size() );
             BOOST_ASSIGN_V2_CHECK( ragged[1].size() == b.size() );
             BOOST_ASSIGN_V2_CHECK( ragged[2].size() == 1        );
             BOOST_ASSIGN_V2_CHECK( ragged[3].size() == 0        );
-            //]
             data_ eps = numeric::bounds<data_>::smallest();
             BOOST_ASSIGN_V2_CHECK( fabs( ragged[0].front() - a.front() ) < eps );
             BOOST_ASSIGN_V2_CHECK( fabs( ragged[0].back()  - a.back()  ) < eps );
@@ -114,15 +116,17 @@
             // http://bioinfo.mbb.yale.edu/~mbg/dom/fun3/area-codes/            
             //[put_seq_tuple_ref
             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_; 
-            std::deque< data_ > tri_state_area; /*Calls `tri_state.push_back( data_( s, c ) )` for [^( s, c ) = ( ny, 212 )( ny, 718 )( ny, 516 )( ny, 914 )( nj, 210 )( nj, 908 )( nj, 609 )( ct, 203 ) ]*/
+            typedef int area_code_; typedef tuple<us_state_/*<<Notice the [*reference]>>*/&,  area_code_> data_; std::deque< data_ > tri_state_area; 
+            /*<<Calls `tri_state.push_back( data_( s, c ) )` for [^( s, c ) = ( ny, 212 )...( ct, 203 ) ]>>*/
             as2::put( tri_state_area )( ny, 212 )( ny, 718 )( ny, 516 )( ny, 914 )( nj, 210 )( nj, 908 )( nj, 609 )( ct, 203 );
 
+            assert( get<0>( tri_state_area.front() ) == ny );
+            assert( get<1>( tri_state_area.back()  ) == 203 );
+            //]
             BOOST_ASSIGN_V2_CHECK( get<0>( tri_state_area.front() ) == ny );
             BOOST_ASSIGN_V2_CHECK( get<1>( tri_state_area.front() ) == 212 );
             BOOST_ASSIGN_V2_CHECK( get<0>( tri_state_area.back()  ) == ct );
             BOOST_ASSIGN_V2_CHECK( get<1>( tri_state_area.back()  ) == 203 );
-            //]
         }
     }// test()
 
Modified: sandbox/assign_v2/libs/assign/v2/test/put/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/fun.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/fun.cpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -15,7 +15,7 @@
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/container/put.hpp>
 #include <boost/assign/v2/put/deque.hpp>
-#include <boost/assign/v2/put/fun/modulo.hpp>
+#include <boost/assign/v2/put/fun.hpp>
 #include <boost/function.hpp>
 #include <boost/lambda/bind.hpp>
 #include <boost/lambda/lambda.hpp>
Modified: sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/lookup.cpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -18,7 +18,7 @@
 #include <boost/tuple/tuple.hpp>
 
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/fun/modulo.hpp>
+#include <boost/assign/v2/put/fun.hpp>
 #include <boost/assign/v2/put/modifier/lookup.hpp>
 #include <boost/assign/v2/put/container/put.hpp>
 #include <boost/assign/v2/put/deque.hpp>
Modified: sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modifier/standard.cpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -40,14 +40,14 @@
         // ------------------------------ WARNING ---------------------------- //
         // Don't misconstrue the commands in the tests below as *necessary* to //
         // obtain particular implementation. In most cases, the default is     //
-        // already set at that invoked with operator%                            //
+        // already set at that invoked with operator%                          //
         // ------------------------------------------------------------------- //
 
         // PUT
         {
-            //[modifier_meta
+            //[test_put_modifier_standard_meta
             typedef as2::result_of::put<std::vector<int> >::type put_;
-            typedef as2::put_aux::keyword_modifier keyword_;
+            typedef as2::put_aux::keyword_standard_modifier keyword_;
             typedef as2::modifier_tag::push_front tag_;
             typedef as2::result_of::modulo_modifier<put_> meta1_;
             typedef ::boost::mpl::apply2<meta1_, keyword_, tag_>::type result1_;
@@ -57,16 +57,18 @@
             //]
         }
         {
-            //[modifier_push_front
+            //[test_put_modifier_push_front
             std::deque<double> sqrt2;
             ( as2::put( sqrt2 ) % as2::_push_front )( 1.41421 )( 1.4142 )( 1.414 )( 1.41 );
         
+        
+            // TODO abs()<eps
             BOOST_ASSIGN_V2_CHECK( boost::lower_bound( sqrt2, 1.41 ) == boost::begin( sqrt2 ) );
             BOOST_ASSIGN_V2_CHECK( boost::upper_bound( sqrt2, 1.41421 ) == boost::end( sqrt2 ) );
             //]
         }
         {
-            //[modifier_push
+            //[test_put_modifier_push
             std::queue<int> fifo; ( as2::put( fifo ) % as2::_push )( 72 )( 31 )( 48 );
                 
             BOOST_ASSIGN_V2_CHECK( fifo.front() == 72 );
@@ -74,7 +76,7 @@
             //]
         }
         {
-            //[modifier_insert
+            //[test_put_modifier_insert
             std::set<std::string> letters; ( as2::put( letters ) % as2::_insert )( "d" )( "a" )( "c" )( "b" );
         
             BOOST_ASSIGN_V2_CHECK( letters.lower_bound( "a" ) == boost::begin( letters ) );
@@ -82,7 +84,7 @@
             //]
         }
         {
-            //[modifier_push_back
+            //[test_put_modifier_push_back
             typedef int int_; std::list<int> list; 
             ( as2::put( list ) % as2::_push_back )( 72 )( 31 )( 48 );
                 
@@ -92,9 +94,9 @@
         }
         // DEQUE
         {
-            //[modifier_meta_deque
+            //[test_put_modifier_meta_deque
             typedef as2::result_of::deque<int>::type put_;
-            typedef as2::put_aux::keyword_modifier keyword_;
+            typedef as2::put_aux::keyword_standard_modifier keyword_;
             typedef as2::modifier_tag::push_front tag_;
             typedef as2::result_of::modulo_modifier<put_> meta1_;
             typedef ::boost::mpl::apply2<meta1_, keyword_, tag_>::type result1_;
@@ -105,7 +107,7 @@
             //]
         }
         {
-            //[modifier_push_front_deque
+            //[test_put_modifier_push_front_deque
             BOOST_AUTO(
                 powers,
                 ( as2::deque<int>( as2::_nil ) % as2::_push_front )( 16 )( 8 )( 4 )( 2 )( 1 )
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/fun.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/fun.cpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -12,7 +12,7 @@
 #include <vector>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/deque/csv_deque.hpp>
-#include <boost/assign/v2/put/fun/modulo.hpp>
+#include <boost/assign/v2/put/fun.hpp>
 #include <boost/assign/v2/put/pipe/put.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/range/algorithm/equal.hpp>
Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/modifier/lookup.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/modifier/lookup.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/modifier/lookup.cpp	2011-03-12 21:11:39 EST (Sat, 12 Mar 2011)
@@ -12,7 +12,7 @@
 #include <boost/lambda/lambda.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put/fun/modulo.hpp>
+#include <boost/assign/v2/put/fun.hpp>
 #include <boost/assign/v2/put/modifier/lookup.hpp>
 #include <boost/assign/v2/put/pipe/put.hpp>
 #include <boost/assign/v2/put/pipe/csv_put.hpp>