$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r69981 - in sandbox/assign_v2/boost/assign/v2: put/adapter ref/array ref/array/cpp03 ref/array/cpp0x ref/wrapper utility utility/chain utility/conversion
From: erwann.rogard_at_[hidden]
Date: 2011-03-14 17:03:08
Author: e_r
Date: 2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
New Revision: 69981
URL: http://svn.boost.org/trac/boost/changeset/69981
Log:
upd assign_v2
Text files modified: 
   sandbox/assign_v2/boost/assign/v2/put/adapter/as_arg_list.hpp       |     6 +-                                      
   sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp               |    34 ++++++-----                             
   sandbox/assign_v2/boost/assign/v2/ref/array/cpp03/csv_array.hpp     |     1                                         
   sandbox/assign_v2/boost/assign/v2/ref/array/cpp0x/csv_array.hpp     |    98 ---------------------------------       
   sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp           |   116 ++++++++++++++++++++++++++++++++++----- 
   sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp           |   105 ++++++++++++++++++-----------------     
   sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp              |    39 +++++++------                           
   sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp              |    88 ++++++++++++++++--------------          
   sandbox/assign_v2/boost/assign/v2/ref/wrapper/range_get.hpp         |    61 ++++++++++++--------                    
   sandbox/assign_v2/boost/assign/v2/utility/chain.hpp                 |     6 -                                       
   sandbox/assign_v2/boost/assign/v2/utility/chain/adaptor.hpp         |    69 -----------------------                 
   sandbox/assign_v2/boost/assign/v2/utility/chain/alias.hpp           |     4                                         
   sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp           |     4                                         
   sandbox/assign_v2/boost/assign/v2/utility/chain/pipe.hpp            |    51 ++++++++++++++++-                       
   sandbox/assign_v2/boost/assign/v2/utility/chain/range.hpp           |    62 ---------------------                   
   sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp          |    44 --------------                          
   sandbox/assign_v2/boost/assign/v2/utility/chain/use_const.hpp       |    58 -------------------                     
   sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp    |    33 ++++++++---                             
   sandbox/assign_v2/boost/assign/v2/utility/conversion/converter.hpp  |    48 ++++++++++------                        
   sandbox/assign_v2/boost/assign/v2/utility/conversion/deduce_tag.hpp |     6 --                                      
   20 files changed, 392 insertions(+), 541 deletions(-)
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-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -55,7 +55,7 @@
 
     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 );
@@ -63,14 +63,14 @@
     
     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;
+    using put_aux::_as_arg_list;
 namespace result_of{
 
     template<typename R>
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-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_REF_ARRAY_ARRAY_ER_2010_HPP
 #define BOOST_ASSIGN_V2_REF_ARRAY_ARRAY_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/ref/array/alloc/lazy.hpp>
 #include <boost/assign/v2/ref/array/size_type.hpp>
 #include <boost/assign/v2/ref/list/list.hpp>
@@ -17,7 +18,9 @@
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_ref_array_array
 namespace ref{
+//<-
 namespace array_aux{
 
     template<typename T>
@@ -34,49 +37,50 @@
     struct recursive_result<0, T> : empty_array<T>{};
 
 }// array_aux
+//->
 namespace nth_result_of{
 
-    template<array_size_type N, typename T>
-    struct array
-        : array_aux::recursive_result<N, T>
-    {};
+    template<array_size_type N, typename /*<<U& has to be a reference>>*/U>
+    struct /*<<Meta-function>>*/array/*<-*/
+        : array_aux::recursive_result<N, U>
+    {}/*->*/;
 
 }// nth_result_of
 namespace result_of{
 
     template<typename U, typename T = U>
-    struct array
-        : nth_result_of::array<1, U>{};
+    struct array/*<-*/
+        : nth_result_of::array<1, U>{}/*->*/;
 
     template<typename U>
-    struct array<U, keyword_aux::nil>
-        : nth_result_of::array<0, U>{};
+    struct array<U, keyword_aux::nil>/*<-*/
+        : nth_result_of::array<0, U>{}/*->*/;
 
 }// result_of
 
     template<typename T>
     typename result_of::array<T, keyword_aux::nil>::type
-    array( keyword_aux::nil )
+    array( keyword_aux::nil )/*<-*/
     {
         return ref::list<list_aux::array_tag>( v2::_nil );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename T>
     typename result_of::array<T>::type
-    array(T& t)
+    array(T& t)/*<-*/
     {
         return array<T>( v2::_nil )( t );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename T>
     typename result_of::array<T const>::type
-    array(T const & t)
+    array(T const & t)/*<-*/
     {
         return array<T const>( v2::_nil )( t );
-    }
-
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
 }// ref
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/ref/array/cpp03/csv_array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/cpp03/csv_array.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/cpp03/csv_array.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,7 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_REF_ARRAY_CPP03_CSV_ARRAY_ER_2010_HPP
 #define BOOST_ASSIGN_V2_REF_ARRAY_CPP03_CSV_ARRAY_ER_2010_HPP
-#include <boost/assign/v2/detail/keyword/nil.hpp>
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
 #include <boost/preprocessor/arithmetic/inc.hpp>
Modified: sandbox/assign_v2/boost/assign/v2/ref/array/cpp0x/csv_array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/cpp0x/csv_array.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/cpp0x/csv_array.hpp	2011-03-14 17:03:05 EDT (Mon, 14 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_REF_ARRAY_CPP0X_CSV_ARRAY_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_ARRAY_CPP0X_CSV_ARRAY_ER_2010_HPP
-#include <utility>
-#include <boost/assign/v2/ref/array/csv/common.hpp>
-#include <boost/assign/v2/detail/traits/type/or_const.hpp>
-#include <boost/config.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace array_aux{
-namespace result_of{
-
-    template<typename U, typename... Args>
-    struct csv_array : nth_result_of::csv_array<
-        1 + sizeof...(Args),  U
-    >
-    {};
-
-}// result_of
-
-    template<size_type I, typename R>
-    void csv_assign( R& result ){}
-
-    template<size_type I, typename R, typename U, typename... Args>
-    void csv_assign( R& result, U& u, Args&...args )
-    {
-        typedef typename R::wrapper_type wrapper_;
-        r.rebind( I::value, u );
-        csv_assign<I + 1>( result, args... );
-    }
-
-    template<typename U, typename... Args>
-    struct csv_helper
-    {
-        typedef typename result_of::csv_array<U, Args...>::type type;
-
-        static type call( U& u, Args&...args )
-        {
-            type result;
-            csv_assign<0>( result, u, args... );
-            return result;
-        }
-
-    };
-
-    template<typename T, typename...Args>
-    typename boost::lazy_disable_if<
-        v2::type_traits::or_const<T, Args...>,
-        result_of::csv_array<T, Args...>
-    >::type
-    csv_array( T& t, Args&...args )
-    {
-        return csv_helper<T, Args...>::call( t, args... );
-    }
-
-    template<typename T, typename...Args>
-    typename result_of::csv_array<T const, Args const...>
-    csv_array( T const& t, Args const&...args )
-    {
-        return csv_helper<T const, Args const ...>::call( t, args... );
-    }
-
-}// array_aux
-
-using array_aux::csv_array;
-
-//[result_of_csv_array
-namespace result_of{
-
-    template<typename /*<<U& has to be a reference>>*/U, typename... Args>
-    struct csv_array : nth_result_of::csv_array<
-        1 + sizeof...(Args),  U
-    >
-    {};
-
-}// result_of
-//]
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_REF_ARRAY_CPP0X_CSV_ARRAY_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
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-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,58 +9,140 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_REF_ARRAY_CSV_ARRAY_ER_2010_HPP
 #define BOOST_ASSIGN_V2_REF_ARRAY_CSV_ARRAY_ER_2010_HPP
+#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/detail/keyword/nil.hpp>
 #include <boost/assign/v2/ref/array/alloc/instant.hpp>
 #include <boost/assign/v2/ref/array/size_type.hpp>
 
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+#include <utility>
+#include <boost/assign/v2/detail/traits/type/or_const.hpp>
+#include <boost/config.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/type_traits/is_same.hpp>
+#endif
+
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_ref_array_csv_array
 namespace ref{
+//<-
 namespace array_aux{
+//->
 namespace nth_result_of{
 
-    template<array_size_type N, typename U>
-    struct csv_array 
+    template<array_size_type N, typename /*<<U& has to be a reference>>*/U>
+    struct /*<<Meta-function>>*/csv_array/*<-*/
     {
         typedef array_aux::instant_alloc<N, U> type;
-    };
+    }/*->*/;
 
 }// result_of
 
     template<typename U>
     typename nth_result_of::csv_array<0, U>::type
-    csv_array( keyword_aux::nil )
+    csv_array( keyword_aux::nil )/*<-*/
     {
         typedef typename nth_result_of::csv_array<0, U>::type result_;
         return result_();
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//<-
 }// array_aux
 using array_aux::csv_array;
-//[nth_result_of
 namespace nth_result_of{ 
 
-    template<array_size_type N, typename /*<<U& has to be a reference>>*/U>
-    struct /*<<Meta-function>>*/csv_array 
-    //<-
+    template<array_size_type N, typename U>
+    struct csv_array
         : array_aux::nth_result_of::csv_array<N, U>
-    //->
     {};
 
 }// nth_result_of
-//]
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+namespace array_aux{
+//->
+namespace result_of{
+
+    template<typename U, typename... Args>
+    struct csv_array/*<-*/ : nth_result_of::csv_array<
+        1 + sizeof...(Args),  U
+    >
+    {}/*->*/;
+
+}// result_of
+
+//<-
+    template<size_type I, typename R>
+    void csv_assign( R& result ){}
+
+    template<size_type I, typename R, typename U, typename... Args>
+    void csv_assign( R& result, U& u, Args&...args )
+    {
+        typedef typename R::wrapper_type wrapper_;
+        r.rebind( I::value, u );
+        csv_assign<I + 1>( result, args... );
+    }
+
+    template<typename U, typename... Args>
+    struct csv_helper
+    {
+        typedef typename result_of::csv_array<U, Args...>::type type;
+
+        static type call( U& u, Args&...args )
+        {
+            type result;
+            csv_assign<0>( result, u, args... );
+            return result;
+        }
+
+    };
+//->
+
+    template<typename T, typename...Args>/*<-*/
+    typename boost::lazy_disable_if<
+        v2::type_traits::or_const<T, Args...>
+        result_of::csv_array<T, Args...>
+    >::type
+    BOOST_ASSIGN_V2_IGNORE(/*->*/typename result_of::csv_array<T, Args...>/*<-*/)/*->*/
+    /*<<Enabled only if each of `t, args...` bind to non-const lvalue>>*/csv_array( T& t, Args&...args )/*<-*/
+    {
+        return csv_helper<T, Args...>::call( t, args... );
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+    template<typename T, typename...Args>
+    typename result_of::csv_array<T const, Args const...>
+    csv_array( T const& t, Args const&...args )/*<-*/
+    {
+        return csv_helper<T const, Args const ...>::call( t, args... );
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+//<-
+}// array_aux
+
+using array_aux::csv_array;
+
+namespace result_of{
+
+    template<typename U, typename... Args>
+    struct csv_array : nth_result_of::csv_array<
+        1 + sizeof...(Args),  U
+    >
+    {};
+
+}// result_of
+#endif
+//->
 }// ref
+//]
 }// v2
 }// assign
 }// boost
 
-#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <boost/assign/v2/ref/array/cpp0x/csv_array.hpp>
-#else 
+#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <boost/assign/v2/ref/array/cpp03/csv_array.hpp>
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
+#endif // !BOOST_ASSIGN_V2_ENABLE_CPP0X
 
 #endif // BOOST_ASSIGN_V2_REF_ARRAY_CSV_ARRAY_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_REF_ARRAY_INTERFACE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_REF_ARRAY_INTERFACE_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/ref/wrapper.hpp>
 #include <boost/call_traits.hpp>
 #include <boost/config.hpp>
@@ -18,7 +19,9 @@
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_ref_array_interface
 namespace ref{
+//<-
 namespace array_aux{
 
     template<typename Impl>
@@ -49,8 +52,8 @@
         typedef typename boost::range_difference<range_>::type difference_type;
 
     };
+//->
 
-//[array_interface
     template<typename Impl, typename D>
     class interface
     {
@@ -61,84 +64,83 @@
         typedef typename traits_::cimpl_ cimpl_;
         typedef interface<Impl, D> this_;
         typedef typename traits_::result_of_get_ result_of_get_;
-        typedef typename traits_::param_type param_type;
 //->
+        typedef /*<-*/typename traits_::param_type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/param_type;
+
         public:
 
-        typedef wrapper_ wrapper_type;
-        typedef typename traits_::inner_type inner_type;
-        typedef typename traits_::value_type value_type;
-        typedef typename traits_::iterator iterator;
-        typedef typename traits_::const_iterator const_iterator;
-        typedef typename traits_::size_type size_type;
-        typedef typename traits_::difference_type difference_type;
-        typedef typename traits_::reference reference;
-        typedef typename traits_::const_reference const_reference;
+        typedef /*<-*/wrapper_ BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ wrapper_type;
+        typedef /*<-*/typename traits_::inner_type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ inner_type;
+        typedef /*<-*/typename traits_::value_type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ value_type;
+        typedef /*<-*/typename traits_::iterator BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ iterator;
+        typedef /*<-*/typename traits_::const_iterator BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ const_iterator;
+        typedef /*<-*/typename traits_::size_type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ size_type;
+        typedef /*<-*/typename traits_::difference_type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ difference_type;
+        typedef /*<-*/typename traits_::reference BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ reference;
+        typedef /*<-*/typename traits_::const_reference BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/ const_reference;
 
-        BOOST_STATIC_CONSTANT(size_type, static_size = Impl::static_size);
+//<-
+        BOOST_STATIC_CONSTANT(size_type, static_size/*<-*/ = Impl::static_size/*->*/);
+//->
+        /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/size_type static_size/*<-*/)/*->*/;
 
-        iterator begin()//<-
+        iterator begin()/*<-*/
         {
             return boost::begin( this->wrappers() );
-        }//->
-        iterator end()//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        iterator end()/*<-*/
         {
             return boost::end( this->wrappers() );
-        }//->
-        const_iterator begin()const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        const_iterator begin()const/*<-*/
         {
             return boost::begin( this->wrappers() );
-        }//->
-        const_iterator end()const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        const_iterator end()const/*<-*/
         {
             return boost::end( this->wrappers() );
-        }//->
-
-        size_type size() const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        size_type size() const/*<-*/
         {
             return this->wrappers().size();
-        }//->
-        bool empty() const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        bool empty() const/*<-*/
         {
             return this->wrappers().empty();
-        }//->
-
-        void rebind(size_type i, result_of_get_ t)//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        void rebind(size_type i, result_of_get_ t)/*<-*/
         {
             return (this->wrappers())[i].rebind( t );
-        }//->
-
-        reference operator[](size_type i)//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        reference operator[](size_type i)/*<-*/
         {
             return this->elem_impl( this->wrappers()[i] );
-        }//->
-        const_reference operator[](size_type i)const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        const_reference operator[](size_type i)const/*<-*/
         {
             return this->elem_impl( this->wrappers()[i] );
-        }//->
-
-        reference front()//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        reference front()/*<-*/
         {
             return this->elem_impl( this->wrappers().front() );
-        }//->
-        const_reference front() const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        const_reference front() const/*<-*/
         {
             return this->elem_impl( this->wrappers().front() );
-        }//->
-        reference back()//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        reference back()/*<-*/
         {
             return this->elem_impl( this->wrappers().back() );
-        }//->
-        const_reference back() const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        const_reference back() const/*<-*/
         {
             return this->elem_impl( this->wrappers().back() );
-        }//->
-
-        void assign(param_type val)//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        void assign(param_type val)/*<-*/
         {
             typedef ::boost::mpl::int_<0> int_;
             this->assign_impl( val, int_() );
-        }//->
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 //<-
         protected:
 
@@ -168,20 +170,23 @@
 
         public:
 
-        impl_& wrappers()//<-
+        impl_& wrappers()/*<-*/
         {
             return static_cast<D&>(*this).impl();
-        }
-
-        cimpl_& wrappers()const//<-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        cimpl_& wrappers()const/*<-*/
         {
             return static_cast<const D&>(*this).impl();
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//->
     };
 
+//<-
 }// array_aux
+//->
 }// ref
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/wrapper/copy.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_REF_WRAPPER_COPY_ER_2010_HPP
 #define BOOST_ASSIGN_V2_REF_WRAPPER_COPY_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/ref/wrapper/crtp.hpp>
 #include <boost/assign/v2/ref/wrapper/framework.hpp>
 #include <boost/call_traits.hpp>
@@ -20,6 +21,7 @@
 namespace assign{
 namespace v2{
 namespace ref{
+//[syntax_ref_wrapper_copy
 namespace assign_tag{ struct copy{}; }
 namespace assign_copy{ typedef assign_tag::copy assign_tag_; }
 
@@ -31,30 +33,30 @@
         typedef T type;
         BOOST_STATIC_CONSTANT( bool, is_const = boost::is_const<T>::value );
 
-        wrapper(){/*TODO or null pointer?*/}
-
-        explicit wrapper( T& r ) : ref_(&r)
-        { }
-
-        void rebind(T& r )
+        wrapper()/*<-*/
+        	{/*TODO or null pointer?*/}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        explicit /*<<Equivalent to `rebind( r )`>>*/wrapper( T& r )/*<-*/
+        	: ref_(&r)
+        {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        void /*<<Semantics: `ref_ = &r`>>*/rebind(T& r )/*<-*/
         {
             this->ref_ = &r;
-        }
-
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
         typedef T& result_of_get_type;
-        T& get() const
+        T& get() const/*<-*/
         {
             return *this->ref_;
-        }
-
-        T* get_pointer() const { return this->ref_; }
-
-        using wrapper_crtp<wrapper,T>::operator=;
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        T* get_pointer() const/*<-*/
+        { 
+        	return this->ref_; 
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
-        void assign(typename boost::call_traits<T>::param_type r )
+        using wrapper_crtp<wrapper, T>::operator=;
+        void /*<<Semantics: `*ref_ = r`>>*/assign(typename boost::call_traits<T>::param_type r )/*<-*/
         {
             this->get() = r;
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
         protected:
         friend class wrapper_crtp<wrapper, T>;
@@ -63,10 +65,10 @@
 
         typedef ref::assign_tag::copy assign_tag;
 
-        void swap( wrapper& r )
+        void swap( wrapper& r )/*<-*/
         {
             std::swap( this->get(), r.get() );
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     };
 
@@ -74,6 +76,7 @@
     struct copy_wrapper{ typedef ref::wrapper<assign_tag::copy,T> type; };
 
 }// ref
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/wrapper/crtp.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -11,6 +11,7 @@
 #ifndef BOOST_ASSIGN_V2_REF_WRAPPER_CRTP_ER_MPG_2010_HPP
 #define BOOST_ASSIGN_V2_REF_WRAPPER_CRTP_ER_MPG_2010_HPP
 #include <iosfwd>
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/call_traits.hpp>
 #include <boost/operators.hpp>
 #include <boost/type_traits/is_same.hpp>
@@ -23,20 +24,20 @@
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_ref_wrapper_crtp
 namespace ref{
 
     template<typename D, typename T>
-    class wrapper_crtp
-    :
+    class wrapper_crtp :
         boost::less_than_comparable1<
-            wrapper_crtp<D,T>,
+            wrapper_crtp<D, T>,
             boost::less_than_comparable2<
-                wrapper_crtp<D,T>,
+                wrapper_crtp<D, T>,
                 T,
                 boost::equality_comparable1<
-                    wrapper_crtp<D,T>,
+                    wrapper_crtp<D, T>,
                     boost::equality_comparable2<
-                        wrapper_crtp<D,T>,
+                        wrapper_crtp<D, T>,
                         T
                     >
                 >
@@ -49,70 +50,75 @@
 
         public:
 
-        D& derived(){ return static_cast<D&>( *this ); }
-        D const & derived()const{ return static_cast<D const&>( *this ); }
-
-        public:
-
-        void operator=(non_const& t ){ this->derived().assign( t ); }
-        void operator=(const_& t ){ this->derived().assign( t ); }
-
-        void swap( wrapper_crtp& that )
+        D& derived()/*<-*/
+        { 
+        	return static_cast<D&>( *this ); 
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        D const & derived()const/*<-*/{ 
+        	return static_cast<D const&>( *this ); 
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+
+        void operator=(non_const& t )/*<-*/
+        { 
+            this->derived().assign( t ); 
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        void operator=(const_& t )/*<-*/
+        {
+        	this->derived().assign( t );
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        void swap( wrapper_crtp& that )/*<-*/
         {
             return this->derived().swap( that );
-        }
-
-        operator T&() const
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        operator T&() const/*<-*/
         {
             return this->derived().get();
-        }
-
-        bool operator==( const wrapper_crtp& that )const
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        bool operator==( const wrapper_crtp& that )const/*<-*/
         {
             return this->derived().get() == that.derived().get();
-        }
-
-        bool operator<( const wrapper_crtp& that )const
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        bool operator<( const wrapper_crtp& that )const/*<-*/
         {
             return this->derived().get() < that.derived().get();
-        }
-
-        bool operator==( typename boost::call_traits<T>::param_type t )const
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        bool operator==( typename boost::call_traits<T>::param_type t )const/*<-*/
         {
             return this->derived().get() == t;
-        }
-
-        bool operator<( typename boost::call_traits<T>::param_type t )const
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        bool operator<( typename boost::call_traits<T>::param_type t )const/*<-*/
         {
             return this->derived().get() < t;
-        }
-
-        bool operator>( typename boost::call_traits<T>::param_type t )const
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+        bool operator>( typename boost::call_traits<T>::param_type t )const/*<-*/
         {
             return this->derived().get() > t;
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
         template<class CharT, class Traits>
-        friend std::basic_ostream<CharT,Traits>&
-        operator<<(std::basic_ostream<CharT,Traits>& os,
-                   const wrapper_crtp& w)
+        friend std::basic_ostream<CharT, Traits>&
+        operator<<(std::basic_ostream<CharT, Traits>& os, const wrapper_crtp& w)/*<-*/
         {
             return (os << w.derived().get() );
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     };
 
 
     template<typename D, typename T>
-    void rebind( wrapper_crtp<D,T>& a, T& t ){ a.rebind( t ); }
+    void rebind( wrapper_crtp<D,T>& a, T& t )/*<-*/
+    { 
+    	a.rebind( t ); 
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename D, typename T>
-    inline void swap( wrapper_crtp<D,T>& l, wrapper_crtp<D,T>& r )
+    inline void swap( wrapper_crtp<D,T>& l, wrapper_crtp<D,T>& r )/*<-*/
     {
         l.swap( r );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
 }// ref
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/ref/wrapper/range_get.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/wrapper/range_get.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/wrapper/range_get.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_REF_WRAPPER_RANGE_GET_ER_2010_HPP
 #define BOOST_ASSIGN_V2_REF_WRAPPER_RANGE_GET_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/config.hpp>
 #include <boost/range/reference.hpp>
 #include <boost/range/value_type.hpp>
@@ -27,12 +28,13 @@
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_ref_wrapper_range_get
 namespace ref{
 namespace range_aux{
 namespace result_of{
 
-    template<typename R>
-    struct range_get{
+    template<typename /*<<Range of reference-wrappers>>*/R>
+    struct /*<<Meta-function>>*/range_get/*<-*/{
 
         typedef ref::get_functor f_;
         #ifdef BOOST_MSVC
@@ -44,73 +46,82 @@
         #else
         typedef boost::range_detail::transform_range<f_, R> type;
         #endif
-    };
+    }/*->*/;
 
 }// result_of
 
     template<typename R>
     typename range_aux::result_of::range_get<R>::type
-    range_get(R& r)
+    /*<<Semantics: transforms `r` by invoking member function `get()`>>*/
+    range_get(R& rw)/*<-*/
     {
         typedef typename range_aux::result_of::range_get<R>::type result_;
         #ifdef BOOST_MSVC
         return result_(
-            boost::make_transform_iterator( boost::begin(r), get_functor() ),
-            boost::make_transform_iterator( boost::end(r), get_functor() )
+            boost::make_transform_iterator( boost::begin( rw ), get_functor() ),
+            boost::make_transform_iterator( boost::end( rw ), get_functor() )
         );
         #else
-        return result_(get_functor(), r);
+        return result_( get_functor(), rw );
         #endif
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+    
     template<typename R>
     typename range_aux::result_of::range_get<R const>::type
-    range_get(R const& r)
+    /*<<Semantics: transforms `r` by invoking member function `get()`>>*/
+    range_get(R const& rw )/*<-*/
     {
         typedef typename range_aux::result_of::range_get<R const>::type result_;
         #ifdef BOOST_MSVC
         return result_(
-            boost::make_transform_iterator( boost::begin(r), get_functor() ),
-            boost::make_transform_iterator( boost::end(r), get_functor() )
+            boost::make_transform_iterator( boost::begin( rw ), get_functor() ),
+            boost::make_transform_iterator( boost::end( rw ), get_functor() )
         );
         #else
-        return result_(get_functor(), r);
+        return result_( get_functor(), rw );
         #endif
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
-    struct get_adaptor{};
+    struct get_adaptor/*<-*/{}/*->*/;
 
     template<typename R>
     typename range_aux::result_of::range_get<R>::type
-    operator|(R& r, get_adaptor){
-        return range_get( r );
-    }
+    operator|(R& rw, get_adaptor)/*<-*/{
+        return range_get( rw );
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename R>
     typename range_aux::result_of::range_get<R const>::type
-    operator|(R const& r, get_adaptor){
-        return range_get( r );
-    }
+    operator|(R const& rw, get_adaptor)/*<-*/{
+        return range_get( rw );
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
 }// range_aux
 namespace result_of{
 
     template<typename R>
-    struct range_get : boost::lazy_enable_if<
+    struct range_get/*<-*/ : boost::lazy_enable_if<
         boost::is_reference_wrapper<
             typename boost::range_value<
                 typename boost::remove_cv<R>::type
             >::type
         >,
         range_aux::result_of::range_get<R>
-    >{};
+    >{}/*->*/;
 
 }// result_of
-
+//<-
 namespace{
-    range_aux::get_adaptor const _get = range_aux::get_adaptor();
-}
+//->
 
+    range_aux::get_adaptor const _get/*<-*/
+    	= range_aux::get_adaptor()/*->*/;
+
+//<-
+}
+//->
 }// ref
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -10,9 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_UTILITY_CHAIN_ER_2010_HPP
 #define BOOST_ASSIGN_V2_UTILITY_CHAIN_ER_2010_HPP
 
-#include <boost/assign/v2/utility/chain/pipe.hpp>
-
-// This has to be included explicitly (it's convenient, but some may object to operator overloading)
-//     #include <boost/assign/v2/utility/chain/alias.hpp>
+#include <boost/assign/v2/utility/chain/chain.hpp>
+// #include <boost/assign/v2/utility/chain/alias.hpp> // keep commented out as it is optional
 
 #endif // BOOST_ASSIGN_V2_UTILITY_CHAIN_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/adaptor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/adaptor.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/adaptor.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -1,68 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2009 Neil Groves                                          //
-//  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_CHAIN_ADAPTOR_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_ADAPTOR_ER_2010_HPP
-#include <boost/mpl/void.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace chain_aux{
-
-    typedef ::boost::mpl::void_ void_;
-
-    // Tag1 controls conversion. Seet traits/type/meta_convert.hpp
-
-    template<typename U, typename Tag1 = use_default, typename Tag2 = void_>
-    struct adaptor1
-    {
-        adaptor1( U& r ) : value( r ){}
-        mutable U& value;
-    };
-
-    template<
-        typename Tag1 = use_default,
-        typename Tag2 = void_
-    >
-    struct adaptor2
-    {
-
-        adaptor2(){}
-
-        template<typename U>
-        struct result{
-           typedef chain_aux::adaptor1<U, Tag1, Tag2> type;
-           static type call(U& u){ return type( u ); }
-        };
-
-        template<typename R>
-        typename result<R>::type
-        operator()(R& r)const{
-            return result<R>::call ( r );
-        }
-
-        template<typename R>
-        typename result<R const>::type
-        operator()(R const& r)const{
-            return result<R const>::call( r );
-        }
-
-    };
-
-}// chain_aux
-namespace{
-    const chain_aux::adaptor2<> _chain = chain_aux::adaptor2<>();
-}
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_CHAIN_ADAPTOR_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/alias.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/alias.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/alias.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -10,8 +10,8 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_CHAIN_ALIAS_ER_2010_HPP
 #define BOOST_ASSIGN_V2_CHAIN_ALIAS_ER_2010_HPP
-#include <boost/assign/v2/utility/chain/pipe.hpp>
-#include <boost/assign/v2/utility/chain/result.hpp>
+#include <boost/assign/v2/utility/chain/meta.hpp>
+#include <boost/assign/v2/utility/chain/chain.hpp>
 
 namespace boost{
 namespace assign{
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/check.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -14,8 +14,8 @@
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/ref/wrapper/range_get.hpp>
 #include <boost/assign/v2/ref/wrapper/copy.hpp>
-#include <boost/assign/v2/utility/chain/pipe.hpp>
-#include <boost/assign/v2/utility/chain/use_const.hpp>
+#include <boost/assign/v2/utility/chain/chain.hpp>
+#include <boost/assign/v2/utility/chain/meta.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/mpl/assert.hpp>
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/pipe.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/pipe.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/pipe.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -11,12 +11,11 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_CHAIN_PIPE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_CHAIN_PIPE_ER_2010_HPP
-#include <boost/assign/v2/utility/chain/adaptor.hpp>
-#include <boost/assign/v2/utility/chain/result.hpp>
+#include <boost/assign/v2/utility/chain/meta.hpp>
 #include <boost/mpl/void.hpp>
 
 // Design:
-// - Original design was boost::chain in RangeEx
+// - Original design was boost::chain in RangeEx (later joined)
 // - ER modified as follows:
 //     - sets the underlying iterator's Reference to one which both inputs are
 //     convertible to, and is lvalue-preserving
@@ -25,6 +24,52 @@
 namespace boost{
 namespace assign{
 namespace v2{
+namespace chain_aux{
+
+    typedef ::boost::mpl::void_ void_;
+
+    // Tag1 controls conversion. Seet traits/type/meta_convert.hpp
+
+    template<typename U, typename Tag1 = use_default, typename Tag2 = void_>
+    struct adaptor1
+    {
+        adaptor1( U& r ) : value( r ){}
+        mutable U& value;
+    };
+
+    template<
+        typename Tag1 = use_default,
+        typename Tag2 = void_
+    >
+    struct adaptor2
+    {
+
+        adaptor2(){}
+
+        template<typename U>
+        struct result{
+           typedef chain_aux::adaptor1<U, Tag1, Tag2> type;
+           static type call(U& u){ return type( u ); }
+        };
+
+        template<typename R>
+        typename result<R>::type
+        operator()(R& r)const{
+            return result<R>::call ( r );
+        }
+
+        template<typename R>
+        typename result<R const>::type
+        operator()(R const& r)const{
+            return result<R const>::call( r );
+        }
+
+    };
+
+}// chain_aux
+namespace{
+    const chain_aux::adaptor2<> _chain = chain_aux::adaptor2<>();
+}
 namespace result_of{
 
     template<typename R1, typename R2, typename Tag = use_default>
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/range.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/range.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/range.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -1,61 +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_CHAIN_RANGE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_RANGE_ER_2010_HPP
-#include <boost/assign/v2/utility/chain/iterator.hpp>
-#include <boost/concept/assert.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/iterator.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace chain_aux{
-
-    template<typename R1, typename R2, template<typename> class F, typename Tag>
-    struct range{
-
-        typedef typename chain_aux::iterator<
-            typename F<R1>::type,
-            typename F<R2>::type,
-            Tag
-        >::type iterator_t;
-        typedef boost::iterator_range< iterator_t > type;
-
-        static type call(R1& r1, R2& r2)
-        {
-            BOOST_CONCEPT_ASSERT((SinglePassRangeConcept<R1>));
-            BOOST_CONCEPT_ASSERT((SinglePassRangeConcept<R2>));
-            namespace ns = boost::range_detail;
-//            typedef ns::chain_iterator_begin_tag begin_tag_;
-//            typedef ns::chain_iterator_end_tag end_tag_;
-            typedef ns::join_iterator_begin_tag begin_tag_;
-            typedef ns::join_iterator_end_tag end_tag_;
-            return type(
-                iterator_t(r1, r2, begin_tag_()),
-                iterator_t(r1, r2, end_tag_())
-            );
-        }
-    };
-
-    template<typename R1, typename R2, typename Tag>
-    struct range_l
-        : chain_aux::range< R1, R2, boost::range_iterator,Tag>{};
-
-    template<typename R1, typename R2, typename Tag>
-    struct range_r
-        : chain_aux::range<R1, R2, boost::range_const_iterator,Tag>{};
-
-}// chain_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_CHAIN_RANGE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/result.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -1,43 +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_CHAIN_RESULT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_RESULT_ER_2010_HPP
-#include <boost/assign/v2/utility/chain/use_const.hpp>
-#include <boost/assign/v2/utility/chain/range.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace chain_aux{
-
-    template<typename R1, typename R2, typename Tag = use_default>
-    struct result{
-        typedef typename  ::boost::mpl::eval_if<
-            chain_aux::use_const<R1, R2, Tag>,
-            ::boost::mpl::identity< chain_aux::range_r<R1, R2, Tag> >,
-            ::boost::mpl::identity< chain_aux::range_l<R1, R2, Tag> >
-        >::type caller_;
-
-        typedef typename caller_::type type;
-
-        static type call(R1& r1, R2& r2)
-        {
-            return caller_::call( r1, r2 );
-        }
-    };
-
-}// chain_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_CHAIN_RESULT_ER_2010_HPP
+//TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/utility/chain/use_const.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/chain/use_const.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/chain/use_const.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -1,57 +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_CHAIN_USE_CONST_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_USE_CONST_ER_2010_HPP
-#include <boost/config.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/range/reference.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-namespace boost{
-    struct use_default;
-namespace assign{
-namespace v2{
-namespace chain_aux{
-
-    template<typename U1, typename U2,
-        bool is_r = boost::is_reference<U1>::value,
-        bool is_c = boost::is_const<
-            typename boost::remove_reference<U1>::type
-        >::value
-    >
-    struct dont_use_const_impl : ::boost::mpl::false_{};
-
-    template<typename U>
-    struct dont_use_const_impl<U, U, true, false> : ::boost::mpl::true_{};
-
-    template<typename R1, typename R2, typename Tag = use_default>
-    struct dont_use_const : dont_use_const_impl<
-        typename boost::range_reference<R1>::type,
-        typename boost::range_reference<R2>::type
-    >{};
-
-    template<typename R1, typename R2, typename Tag = use_default>
-    struct use_const : ::boost::mpl::bool_<
-        !dont_use_const<R1, R2, Tag>::value
-    >{};
-
-}// chain_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_CHAIN_USE_CONST_ER_2010_HPP
-
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,13 +9,21 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_UTILITY_CONVERSION_CONVERT_ER_2010_HPP
 #define BOOST_ASSIGN_V2_UTILITY_CONVERSION_CONVERT_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/put/put.hpp>
-#include <boost/assign/v2/utility/conversion/deduce_tag.hpp>
 #include <boost/range/algorithm/for_each.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_utility_conversion_convert
+namespace convert_tag{
+
+    struct put{};
+    struct copy{};
+
+}// convert_tag
+//<-
 namespace conversion_aux{
 
     template<typename C, typename R>
@@ -31,41 +39,48 @@
         return C( boost::begin( r ), boost::end( r ) );
     }
 
+
+	template<typename C, typename R>
+    struct deduce_tag;
+//->
     template<typename C, typename R>
-    C convert(R const& r)
+    C convert(R const& r)/*<-*/
     {
         typedef typename conversion_aux::deduce_tag<C, R>::type tag_;
         return conversion_aux::convert<C>( r, tag_() );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename C>
-    struct convert_adapter{};
+    struct convert_adapter/*<-*/{}/*->*/;
     
     template<typename R, typename C>
-    C operator|( R const& r, convert_adapter<C> )
+    C operator|( R const& r, convert_adapter<C> )/*<-*/
     {
         return convert<C>( r );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
 }// conversion_aux
 using conversion_aux::convert;
 namespace result_of{
 
     template<typename /*<<Container>>*/ C, typename /*<<Range>>*/R>
-    struct convert{ typedef C type; };
+    struct convert/*<-*/{ typedef C type; }/*->*/;
 
 }//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(/*->*/;/*<-*/)/*->*/
 
+//]
 }// v2
 }// assign
 }// boost
 
+#include <boost/assign/v2/utility/conversion/deduce_tag.hpp> // Do not displace
+
 #if defined( BOOST_ASSIGN_V2_UTILITY_CONVERSION_CONVERT_NAME_LOOKUP_PARAM ) || defined ( BOOST_ASSIGN_V2_UTILITY_CONVERSION_CONVERT_NAME_LOOKUP )
 #error
 #endif
Modified: sandbox/assign_v2/boost/assign/v2/utility/conversion/converter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/conversion/converter.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/conversion/converter.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -9,8 +9,10 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_UTILITY_CONVERSION_CONVERTER_ER_2010_HPP
 #define BOOST_ASSIGN_V2_UTILITY_CONVERSION_CONVERTER_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/ref/wrapper.hpp>
 #include <boost/assign/v2/utility/conversion/convert.hpp>
+#include <boost/call_traits.hpp>
 #include <boost/range/begin.hpp>
 #include <boost/range/end.hpp>
 #include <boost/type_traits/add_const.hpp>
@@ -18,69 +20,77 @@
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_utility_conversion_converter
 namespace conversion_aux{
 
     template<typename R>
     class converter
     {
-
-        typedef typename boost::add_const<R>::type const_;
-
+//<-
          typedef typename ref::copy_wrapper<
-            const_
+            typename boost::add_const<R>::type
         >::type wrapper_;
+//->
 
         public:
 
-        explicit converter(const_& r) : w( r ){}
+        explicit converter(typename call_traits<R>::param_type r)/*<-*/
+        	 : w( r )
+        {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
         template<typename C>
-        operator C () const
+        operator C () const/*<-*/
         {
             return this->type<C>();
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
         template<typename C>
-        C type()const
+        C type()const/*<-*/
         {
             return conversion_aux::convert<C>( this->w.get() );
-        }
+        }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//<-
         private:
         wrapper_ w;
-
+//->
     };
 
-    struct converter_adapter{};
+    struct converter_adapter/*<-*/{}/*->*/;
 
     template<typename R>
-    converter<R> operator|( R const& r, converter_adapter )
+    converter<R> operator|( R const& r, converter_adapter )/*<-*/
     {
         return converter<R>( r );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
 }// conversion_aux
+//<-
 namespace{
-    conversion_aux::converter_adapter const _converter 
-        = conversion_aux::converter_adapter();
+//->
+    conversion_aux::converter_adapter const _converter/*<-*/
+        = conversion_aux::converter_adapter()/*->*/;
+//<-
 }
+//->
 namespace result_of{
 
     template<typename R>
-    struct converter
+    struct converter/*<-*/
     {
         typedef conversion_aux::converter<R> type;
-    };
+    }/*->*/;
 
 }//result_of
 
     template<typename R>
     typename result_of::converter<R>::type
-    converter(R const& r){
+    converter(R const& r)/*<-*/{
         typedef typename result_of::converter<R>::type result_;
         return result_( r );
-    }
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/utility/conversion/deduce_tag.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/conversion/deduce_tag.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/conversion/deduce_tag.hpp	2011-03-14 17:03:05 EDT (Mon, 14 Mar 2011)
@@ -18,12 +18,6 @@
     struct use_default;
 namespace assign{
 namespace v2{
-namespace convert_tag{
-
-    struct put{};
-    struct copy{};
-
-}// convert_tag
 namespace switch_tag{
     struct deduce_convert{};
 }// switch_tag