Boost logo

Boost-Commit :

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


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk