$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r70517 - in sandbox/assign_v2: boost/assign/v2 boost/assign/v2/chain boost/assign/v2/conversion boost/assign/v2/detail/functor boost/assign/v2/include boost/assign/v2/include/logical_and boost/assign/v2/interpreter boost/assign/v2/option boost/assign/v2/ref/array boost/assign/v2/ref/aux_/list boost/assign/v2/ref/aux_/list/holder libs/assign/v2 libs/assign/v2/src libs/assign/v2/test libs/assign/v2/test/ref libs/assign/v2/test/unit_testing
From: erwann.rogard_at_[hidden]
Date: 2011-03-24 16:51:44
Author: e_r
Date: 2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
New Revision: 70517
URL: http://svn.boost.org/trac/boost/changeset/70517
Log:
upd assign_v2
Text files modified: 
   sandbox/assign_v2/boost/assign/v2/chain.hpp                      |     3 +                                       
   sandbox/assign_v2/boost/assign/v2/chain/chain.hpp                |    60 ++++++++++++++++++++++----------------- 
   sandbox/assign_v2/boost/assign/v2/chain/logical_and.hpp          |     6 ++--                                    
   sandbox/assign_v2/boost/assign/v2/chain/meta.hpp                 |    27 ++++++++++++-----                       
   sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp         |    11 +++++--                                 
   sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp       |     2                                         
   sandbox/assign_v2/boost/assign/v2/csv.hpp                        |     2                                         
   sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp |     2                                         
   sandbox/assign_v2/boost/assign/v2/include.hpp                    |     5 ++-                                     
   sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp  |     2                                         
   sandbox/assign_v2/boost/assign/v2/include/ref.hpp                |     2                                         
   sandbox/assign_v2/boost/assign/v2/interpreter/as_arg_list.hpp    |     2                                         
   sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp           |     6 ++--                                    
   sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp           |     4 +-                                      
   sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp       |     6 ++--                                    
   sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp        |     8 ++--                                    
   sandbox/assign_v2/boost/assign/v2/option/modifier.hpp            |     6 ++--                                    
   sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp            |    14 ++++----                                
   sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp        |     2                                         
   sandbox/assign_v2/boost/assign/v2/ref/array/get.hpp              |     2                                         
   sandbox/assign_v2/boost/assign/v2/ref/aux_/list/container.hpp    |    14 +--------                               
   sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/tail.hpp  |    12 +++----                                 
   sandbox/assign_v2/libs/assign/v2/src/main.cpp                    |    47 +++++++++++++++----------------         
   sandbox/assign_v2/libs/assign/v2/test/chain.cpp                  |     8 ++--                                    
   sandbox/assign_v2/libs/assign/v2/test/conversion.cpp             |    18 ++++++------                            
   sandbox/assign_v2/libs/assign/v2/test/csv.cpp                    |     6 ++--                                    
   sandbox/assign_v2/libs/assign/v2/test/ref/get.cpp                |     6 ++--                                    
   sandbox/assign_v2/libs/assign/v2/test/ref/wrapper.cpp            |     2                                         
   sandbox/assign_v2/libs/assign/v2/test/unit_testing/Jamfile.v2    |     5 +--                                     
   sandbox/assign_v2/libs/assign/v2/tutorial.cpp                    |     4 ++                                      
   30 files changed, 154 insertions(+), 140 deletions(-)
Modified: sandbox/assign_v2/boost/assign/v2/chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/chain.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/chain.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -11,6 +11,7 @@
 #define BOOST_ASSIGN_V2_CHAIN_ER_2010_HPP
 
 #include <boost/assign/v2/chain/chain.hpp>
-// #include <boost/assign/v2/chain/operator_and.hpp> // keep commented out as it is option
+// keep commented out as it is optional:
+// #include <boost/assign/v2/chain/logical_and.hpp> 
 
 #endif // BOOST_ASSIGN_V2_CHAIN_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/chain/chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/chain/chain.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/chain/chain.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -11,6 +11,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_CHAIN_CHAIN_ER_2010_HPP
 #define BOOST_ASSIGN_V2_CHAIN_CHAIN_ER_2010_HPP
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/assign/v2/chain/meta.hpp>
 #include <boost/mpl/void.hpp>
 
@@ -22,12 +23,13 @@
 namespace boost{
 namespace assign{
 namespace v2{
+//[syntax_chain_chain
 namespace chain_aux{
 
-    typedef ::boost::mpl::void_ void_;
+    /*<-*/typedef ::boost::mpl::void_ void_;/*->*/
 
     template<typename U>
-    struct adaptor1
+    struct adaptor1/*<-*/
     {
         adaptor1( U& r ) 
             : ptr( &r )
@@ -35,9 +37,9 @@
         U& reference()const{ return *this->ptr; }
         private:
         mutable U* ptr;
-    };
+    }/*->*/;
 
-    struct adaptor2
+    struct adaptor2/*<-*/
     {
 
         adaptor2(){}
@@ -60,37 +62,43 @@
             return result<R const>::call( r );
         }
 
-    };
+    }/*->*/;
+
+    template<typename R1, typename U2>
+    typename result_of::chain<R1, U2>::type
+    operator|(R1 & r1, chain_aux::adaptor1<U2> const & h)/*<-*/
+    {
+        typedef result_of::chain<R1, U2> caller_;
+        return caller_::call( r1, h.reference() );
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
+    
+    template<typename R1, typename U2>
+    typename result_of::chain<R1 const, U2>::type
+    operator|(R1 const & r1, chain_aux::adaptor1<U2> const & h)/*<-*/
+    {
+        typedef result_of::chain<R1 const, U2> caller_;
+        return caller_::call( r1, h.reference() );
+    }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
 }// chain_aux
+//<-
 namespace{
-    const chain_aux::adaptor2 _chain = chain_aux::adaptor2();
+//->
+
+    const chain_aux::adaptor2 _chain/*<-*/ = chain_aux::adaptor2()/*->*/;
+
+//<-
 }
+//->
 namespace result_of{
 
     template<typename R1, typename R2>
-    struct chain : chain_aux::result<R1, R2>{};
+    struct chain/*<-*/
+        : chain_aux::result_of::chain<R1, R2>
+    {}/*->*/;
 
 }// result_of
-namespace chain_aux{
-
-#define BOOST_ASSIGN_V2_INTERPRETER_CHAIN(U1) \
-    template<typename R1, typename U2> \
-    typename chain_aux::result<U1, U2>::type \
-    operator|(U1 & r1, chain_aux::adaptor1<U2> const & h) \
-    { \
-        typedef chain_aux::result<U1, U2> caller_; \
-        return caller_::call( r1, h.reference() ); \
-    } \
-\
-/**/
-
-BOOST_ASSIGN_V2_INTERPRETER_CHAIN(R1      )
-BOOST_ASSIGN_V2_INTERPRETER_CHAIN(R1 const)
-#undef BOOST_ASSIGN_V2_INTERPRETER_CHAIN
-
-}// chain_aux
-
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/chain/logical_and.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/chain/logical_and.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/chain/logical_and.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -8,8 +8,8 @@
 //  Boost Software License, Version 1.0. (See accompanying file             //
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
 //////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_OPERATOR_AND_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_OPERATOR_AND_ER_2010_HPP
+#ifndef BOOST_ASSIGN_V2_CHAIN_LOGICAL_AND_ER_2010_HPP
+#define BOOST_ASSIGN_V2_CHAIN_LOGICAL_AND_ER_2010_HPP
 #include <boost/assign/v2/chain/meta.hpp>
 #include <boost/assign/v2/chain/chain.hpp>
 
@@ -19,7 +19,7 @@
 
 #define BOOST_ASSIGN_V2_MACRO(U1, U2) \
 template<typename R1, typename R2> \
-typename chain_aux::result< \
+typename result_of::chain< \
     U1,\
     U2 \
 >::type \
Modified: sandbox/assign_v2/boost/assign/v2/chain/meta.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/chain/meta.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/chain/meta.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -10,6 +10,7 @@
 #ifndef BOOST_ASSIGN_V2_CHAIN_META_ER_2010_HPP
 #define BOOST_ASSIGN_V2_CHAIN_META_ER_2010_HPP
 #include <boost/assign/v2/chain/iterator.hpp>
+#include <boost/assign/v2/detail/pp/ignore.hpp>
 #include <boost/config.hpp>
 #include <boost/concept/assert.hpp>
 #include <boost/mpl/and.hpp>
@@ -28,8 +29,10 @@
     struct use_default;
 namespace assign{
 namespace v2{
+//[syntax_chain_meta
 namespace chain_aux{
 
+//<-
     template<typename R1, typename R2, template<typename> class F>
     struct range{
 
@@ -61,7 +64,6 @@
     struct range_r
         : chain_aux::range<R1, R2, boost::range_const_iterator>{};
 
-    // Use-const
     template<typename U1, typename U2,
         bool is_r = boost::is_reference<U1>::value,
         bool is_c = boost::is_const<
@@ -79,14 +81,21 @@
         typename boost::range_reference<R2>::type
     >{};
 
-    template<typename R1, typename R2>
-    struct use_const : ::boost::mpl::bool_<
+//->
+
+    template<
+        typename R1        // Range
+        , typename R2    // Range
+    >
+    struct use_const/*<-*/ : ::boost::mpl::bool_<
         !dont_use_const<R1, R2>::value
-    >{};
+    >{}/*->*/;
     
-    // Result
+namespace result_of{
+
     template<typename R1, typename R2>
-    struct result{
+    struct chain/*<-*/
+    {
         typedef typename  ::boost::mpl::eval_if<
             chain_aux::use_const<R1, R2>,
             ::boost::mpl::identity< chain_aux::range_r<R1, R2> >,
@@ -99,9 +108,11 @@
         {
             return caller_::call( r1, r2 );
         }
-    };
-
+    }/*->*/;
+    
+}// result_of
 }// chain_aux
+//]
 }// v2
 }// assign
 }// boost
Modified: sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -16,7 +16,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-//[syntax_utility_conversion_convert
+//[syntax_conversion_convert
 namespace convert_tag{
 
     struct put{};
@@ -42,7 +42,7 @@
 
     template<typename C, typename R>
     struct deduce_tag;
-//->
+
     template<typename C, typename R>
     C convert(R const& r)/*<-*/
     {
@@ -50,6 +50,8 @@
         return conversion_aux::convert<C>( r, tag_() );
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//->
+
     template<typename C>
     struct convert_adapter/*<-*/{}/*->*/;
     
@@ -62,7 +64,10 @@
 }// conversion_aux
 namespace result_of{
 
-    template<typename /*<<Container>>*/ C, typename /*<<Range>>*/R>
+    template<
+        typename C        // Container
+        , typename R     // Range
+    >
     struct convert/*<-*/{ typedef C type; }/*->*/;
 
 }//result_of
Modified: sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/converter.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -20,7 +20,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-//[syntax_utility_conversion_converter
+//[syntax_conversion_converter
 namespace conversion_aux{
 
     template<typename R>
Modified: sandbox/assign_v2/boost/assign/v2/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/csv.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/csv.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -62,7 +62,7 @@
     };
 
 }// csv_aux
-//[syntax_utility_csv
+//[syntax_csv
 namespace result_of{
 
     template<typename F, typename V>
Modified: sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -36,7 +36,7 @@
         ::boost::mpl::always<T>
     >
 #endif
-	/*->*/
+    /*->*/
     {
 //<-
         typedef functor_aux::constructor<T> this_;
Modified: sandbox/assign_v2/boost/assign/v2/include.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/include.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -25,7 +25,8 @@
 #include <boost/assign/v2/include/csv.hpp>
 #include <boost/assign/v2/include/csv_deque.hpp>
 #include <boost/assign/v2/include/deque.hpp>
-//#include <boost/assign/v2/include/ref.hpp>
-//#include <boost/assign/v2/include/logical_and.hpp>
+#include <boost/assign/v2/include/logical_and.hpp>
+#include <boost/assign/v2/include/macro.hpp>
+#include <boost/assign/v2/include/ref.hpp>
 
 #endif // BOOST_ASSIGN_V2_INCLUDE_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -9,6 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
 #define BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
-#include <boost/assign/v2/chain/operator_and.hpp>
+#include <boost/assign/v2/chain/logical_and.hpp>
 
 #endif //BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/include/ref.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/ref.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/include/ref.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -9,6 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_INCLUDE_REF_ER_2010_HPP
 #define BOOST_ASSIGN_V2_INCLUDE_REF_ER_2010_HPP
-//#include <boost/assign/v2/ref/include.hpp>
+#include <boost/assign/v2/ref/include.hpp>
 
 #endif // BOOST_ASSIGN_V2_INCLUDE_REF_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/as_arg_list.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/as_arg_list.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/as_arg_list.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -20,7 +20,7 @@
 namespace interpreter_aux{    
 
     template<
-    	typename R	// Range
+        typename R    // Range
     >
     class as_arg_list_adapter/*<-*/
     {
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -134,10 +134,10 @@
     };
 
     template<
-    	typename C 		// Container, 
-        , typename F 	// Data generator
+        typename C         // Container, 
+        , typename F     // Data generator
         , typename Tag  // Modifier tag
-        , typename D	// Derived
+        , typename D    // Derived
     >
     class interpreter_crtp
 //<-
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -42,7 +42,7 @@
     }/*->*/;
 
     template<
-    	typename C // Value-container 
+        typename C // Value-container 
         , template<typename > class F = container_value
     >
     struct deduce_value_generator/*<-*/
@@ -53,7 +53,7 @@
     }/*->*/;
 
     template<
-    	typename C // Value or pointer-container
+        typename C // Value or pointer-container
     >
     struct deduce_data_generator/*<-*/
         :  boost::mpl::eval_if<
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -29,7 +29,7 @@
 //[syntax_interpreter_modifier
 namespace modifier_tag{
 
-	// Namespace in which to declare template arguments of `interpreter_modifier<>`
+    // Namespace in which to declare template arguments of `interpreter_modifier<>`
 
 }//modifier_tag
 namespace interpreter_aux{
@@ -37,7 +37,7 @@
     template<typename Tag>
     struct interpreter_modifier
     {
-    	// Specialize on Tag to model ConceptModifier 
+        // Specialize on Tag to model ConceptModifier 
     };
 
     template<typename Tag, typename C, typename T>
@@ -130,7 +130,7 @@
 namespace interpreter_aux{
 
     template<
-    	typename C // Container
+        typename C // Container
     >
     struct deduce_modifier_tag/*<-*/
         : switch_aux::result< switch_tag::deduce_put, C>
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -19,11 +19,11 @@
 namespace interpreter_aux{
                 
     template<
-    	typename D // Derives from interpreter_crtp
+        typename D // Derives from interpreter_crtp
     > 
     struct replace_data_generator{
 
-		// Metafunction class specialized on D should return its transformation
+        // Metafunction class specialized on D should return its transformation
         // by D::fun_type = F
     
         template<typename F> 
@@ -31,11 +31,11 @@
     };
 
     template<
-    	typename D // Derives from interpreter_crtp
+        typename D // Derives from interpreter_crtp
     > 
     struct replace_modifier_tag{
 
-		// Metafunction class specialized on D should return its transformation
+        // Metafunction class specialized on D should return its transformation
         // by D::modifier_tag = Tag
 
         template<typename Tag> 
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -85,7 +85,7 @@
     template<typename C, typename F, typename Tag, typename D, 
         typename Keyword, typename Arg>
     typename ::boost::mpl::apply2<
-    	result_of::option_modifier<D>, Keyword, Arg
+        result_of::option_modifier<D>, Keyword, Arg
     >::type
     operator%(
         interpreter_crtp<C, F, Tag, D> const& lhs,
@@ -110,8 +110,8 @@
 
 }// interpreter_aux
 
-	/*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/#define BOOST_ASSIGN_V2_OPTION_MODIFIER_KEYWORD(NAME) unspecified/*<-*/)/*->*/
-	/*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/#define BOOST_ASSIGN_V2_OPTION_MODIFIER_META_MODIFIER_TAG(NAME, Result) unspecified/*<-*/)/*->*/
+    /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/#define BOOST_ASSIGN_V2_OPTION_MODIFIER_KEYWORD(NAME) unspecified/*<-*/)/*->*/
+    /*<-*/BOOST_ASSIGN_V2_IGNORE(/*->*/#define BOOST_ASSIGN_V2_OPTION_MODIFIER_META_MODIFIER_TAG(NAME, Result) unspecified/*<-*/)/*->*/
 
 //]
 namespace result_of{
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-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -41,7 +41,7 @@
 namespace nth_result_of{
 
     template<
-    	array_size_type N
+        array_size_type N
         , typename U // U& has to be a reference
     >
     struct array/*<-*/
@@ -61,27 +61,27 @@
 
 }// result_of
 
-	// Generates an empty array
+    // Generates an empty array
     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(/*->*/;/*<-*/)/*->*/
 
-	// Generates a size one array
+    // Generates a size one array
     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(/*->*/;/*<-*/)/*->*/
 
-	// Generates a size one array
+    // Generates a size one array
     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(/*->*/;/*<-*/)/*->*/
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-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -35,7 +35,7 @@
 namespace nth_result_of{
 
     template<
-    	array_size_type N
+        array_size_type N
         , typename U // U& has to be a reference
     >
     struct csv_array/*<-*/
Modified: sandbox/assign_v2/boost/assign/v2/ref/array/get.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/get.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/get.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -33,7 +33,7 @@
 namespace result_of{
 
     template<
-    	typename R // Range of reference-wrappers
+        typename R // Range of reference-wrappers
     >
     struct transform_get/*<-*/{
 
Modified: sandbox/assign_v2/boost/assign/v2/ref/aux_/list/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/aux_/list/container.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/aux_/list/container.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -25,7 +25,7 @@
 
     template<typename Tag, typename H, typename T>
     class container :
-        public tail_holder<T>, // (*) see holder/tail.hpp
+        public tail_holder<T>, 
         public head_holder<H>,
         public ::boost::mpl::apply2<policy<Tag>, H, T>::type
     {
@@ -47,7 +47,7 @@
             typename boost::call_traits<T>::param_type t,
             H h
         ):
-            tail_( t ) // // tail_holder_( t ) // (*)
+            tail_holder_( t )
             , head_holder_( h )
         {}
 
@@ -65,16 +65,6 @@
             return result_( *this, h );
         }
         
-        typedef typename tail_holder_::result_of_tail_type result_of_tail_type;
-        
-        // (*)
-        result_of_tail_type
-        tail()const{ return this->tail_; } 
-        
-        private:
-        typename boost::call_traits< // (*)
-            typename tail_holder_::result_of_tail_type
-        >::value_type tail_;
     };
 
 }// list_aux
Modified: sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/tail.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/tail.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/tail.hpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -24,19 +24,17 @@
     template<typename T>
     struct tail_holder
     {
-// (*) MSVC workaround : tail has to be variable, not a base class
-// http://social.msdn.microsoft.com/Forums/en/vclanguage/thread/68d0361c-1813-4689-aaa3-b78f47eaf8ad
 
-        //tail_holder(T const& t) : tail_( t ){}
-        //result_of_tail_type tail()const{ return this->tail_; }
 
         typedef T tail_type;
         typedef ::boost::mpl::int_<T::static_size::value + 1> static_size;
-
         typedef T const& result_of_tail_type;
 
-        //private:
-        //T const& tail_;
+        tail_holder(T const& t) : tail_( t ){}
+        result_of_tail_type tail()const{ return this->tail_; }
+
+        private:
+        T const tail_; // A reference would cause ref to temporary
     };
 
     template<>
Modified: sandbox/assign_v2/libs/assign/v2/src/main.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/src/main.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/src/main.cpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -1,37 +1,35 @@
-/*
 #include <string>
 #include <iostream>
 #include <boost/config.hpp>
 #include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
 #include <boost/format.hpp>
-#include <boost/version.hpp>*/
+#include <boost/version.hpp>
 
 // Test
 #include <libs/assign/v2/test/chain.h>
 #include <libs/assign/v2/test/conversion.h>
 #include <libs/assign/v2/test/csv.h>
 #include <libs/assign/v2/test/detail.h>
-//#include <libs/assign/v2/test/deque.h>
-//#include <libs/assign/v2/test/interpreter.h>
-//#include <libs/assign/v2/test/option.h>
-//#include <libs/assign/v2/test/pipe.h>
-//#include <libs/assign/v2/test/put.h>
-//#include <libs/assign/v2/test/ref.h>
+#include <libs/assign/v2/test/deque.h>
+#include <libs/assign/v2/test/interpreter.h>
+#include <libs/assign/v2/test/option.h>
+#include <libs/assign/v2/test/pipe.h>
+#include <libs/assign/v2/test/put.h>
+#include <libs/assign/v2/test/ref.h>
 
 // Tutorial
-//#include <libs/assign/v2/tutorial.h>
+#include <libs/assign/v2/tutorial.h>
 
 // Speed -- CPP0x required
 //#include <fstream>
 //#include <libs/assign/v2/speed/test.h>
 
-//#include <boost/assign/v2/include.hpp>
+#include <boost/assign/v2/include.hpp>
 
 int main (int argc, char * const argv[])
 {
 
     // Do not put libs/assign/v2/test/unit_testing in this project
-/*
     {
         boost::format f( "boost version %1%.%2% %3% " ); 
         f  % (BOOST_VERSION / 100000 ) % ( (BOOST_VERSION / 100) % 1000) % (BOOST_VERSION % 100 ); 
@@ -64,21 +62,22 @@
 
         std::cout << cpp0x.str() << std::endl;
     }
-*/
     {
-//        using namespace test_assign_v2;
-//        xxx_detail::test();
-//        xxx_deque::test();
-//        xxx_interpreter::test();
-//        xxx_option::test();
-//        xxx_pipe::test();
-//        xxx_put::test();
-//        xxx_ref::test();
-//        xxx_utility::test();
+        using namespace test_assign_v2;
+        xxx_chain::test();
+        xxx_conversion::test();
+        xxx_csv::test();
+        xxx_detail::test();
+        xxx_deque::test();
+        xxx_interpreter::test();
+        xxx_option::test();
+        xxx_pipe::test();
+        xxx_put::test();
+        xxx_ref::test();
+    }
+    {
+        tutorial_assign_v2::run();
     }
-//    {
-//        tutorial_assign_v2::run();
-//    }
     {
         //using namespace speed_assign_v2;
         //std::ofstream ofs("assign_v2_speed_test");
Modified: sandbox/assign_v2/libs/assign/v2/test/chain.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/chain.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/chain.cpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -19,7 +19,7 @@
 #include <boost/assign/v2/deque/csv_deque.hpp>
 #include <boost/assign/v2/chain/check.hpp>
 #include <boost/assign/v2/chain.hpp>
-#include <boost/assign/v2/chain/operator_and.hpp>
+#include <boost/assign/v2/chain/logical_and.hpp>
 #include <libs/assign/v2/test/chain.h>
 
 namespace test_assign_v2{
@@ -38,7 +38,7 @@
         }
         // Non-Boost.Assign.v2 containers
         {
-            //[test_utility_chain_read
+            //[test_chain_read
             typedef std::string T;
             array<T, 2> head;  head[0] = "A"; head[1] = "B";
             std::list<T> tail; tail.push_back( "C" ); tail.push_back( "D" );
@@ -50,7 +50,7 @@
             //]
         }
         {
-            //[test_utility_chain_write
+            //[test_chain_write
             typedef std::string word; std::vector<word> words( 6 );
             words[0] = "foo"; words[1] = "bar"; words[2] = "baz";
             words[3] = "qux"; words[4] = "quux"; words[5] = "grault";
@@ -63,7 +63,7 @@
         }
         // Boost.Assign.v2 containers
         {
-            //[test_utility_chain_write_refs
+            //[test_chain_write_refs
             /*<< Needed to bring && into scope >>*/ using namespace assign::v2;
             std::vector<int> consecutive8( 8 ); 
             for(int i = 0; i < 8; i++){ consecutive8[i] = 1 + i; }
Modified: sandbox/assign_v2/libs/assign/v2/test/conversion.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/conversion.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/conversion.cpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -23,7 +23,7 @@
 namespace xxx_conversion{
 
     // suggested by JB:
-    //[test_utility_conversion_f
+    //[test_conversion_f
     template<typename C, typename R>
     void f(C cont, R const& r){
         namespace as2 = boost::assign::v2;
@@ -39,7 +39,7 @@
 
         // External containers (fully qualified)
         {
-            //[test_utility_conversion_vec_array
+            //[test_conversion_vec_array
             std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
             typedef array<int, 3> ar_; 
             ar_ const& ar = ( r | as2::_convert<ar_>() );
@@ -48,7 +48,7 @@
             //]
         }
         {
-            //[test_utility_conversion_vec_stack
+            //[test_conversion_vec_stack
             std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
             std::stack<int> lifo = as2::converter( r );
             
@@ -56,7 +56,7 @@
             //]
         }
         {
-            //[test_utility_conversion_stl
+            //[test_conversion_stl
             typedef int T; typedef std::vector<T> R; R r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48; 
             f< std::vector<T> >( as2::converter( r ), r );
             f< std::deque<T> >( as2::converter( r ), r );
@@ -66,7 +66,7 @@
             //]
         }
         {
-            //[test_utility_conversion_matrix3x3
+            //[test_conversion_matrix3x3
             const int sz = 3; typedef array<int, sz>  row_;
             array<row_, sz>  matrix3x3 = converter(
                 as2::ref::array
@@ -83,7 +83,7 @@
         }
         // Boost.Assign.2.0 containers - name lookup
         {
-            //[test_utility_conversion_as2_deque_array
+            //[test_conversion_as2_deque_array
             std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
             typedef array<int, 3> ar_; 
             ar_ const& ar = ( as2::csv_deque( 72, 31, 48 ) | as2::_convert<ar_>() );
@@ -92,21 +92,21 @@
             //]
         }
         {
-            //[test_utility_conversion_ref_array_stack
+            //[test_conversion_ref_array_stack
             std::stack<int> lifo = /*<<Notice unqualified (name lookup)>>*/converter( as2::ref::array( 72 )( 31 )( 48 ) );
             
             BOOST_ASSIGN_V2_CHECK( lifo.top() == 48 );
             //]
         }
         {
-            //[test_utility_conversion_ref_array_queue
+            //[test_conversion_ref_array_queue
             std::queue<int> fifo = /*<<Notice unqualified (name lookup)>>*/converter( as2::ref::csv_array( 72, 31, 48 ) );
             
             BOOST_ASSIGN_V2_CHECK( fifo.front() == 72 );
             //]
         }
         {
-            //[test_utility_conversion_as2_deque_stack
+            //[test_conversion_as2_deque_stack
             std::stack<int> lifo = /*<<Notice unqualified (name lookup)>>*/converter( as2::csv_deque( 72, 31, 48 ) );
             
             BOOST_ASSIGN_V2_CHECK( lifo.top() == 48 );
Modified: sandbox/assign_v2/libs/assign/v2/test/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/csv.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/csv.cpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -24,7 +24,7 @@
         using namespace boost;
         namespace as2 = assign::v2;
         {
-            //[test_utility_csv_put
+            //[test_csv_put
             std::deque<int> cont;
             as2::csv( as2::put( cont ), 72, 31, 48 );
 
@@ -32,7 +32,7 @@
             //]
         }
         {
-            //[test_utility_csv_put_modulo
+            //[test_csv_put_modulo
             std::deque<int> cont;
             as2::csv( as2::put( cont ) % as2::_push_front, 72, 31, 48 );
 
@@ -40,7 +40,7 @@
             //]
         }
         {
-            //[test_utility_csv_deque_modulo
+            //[test_csv_deque_modulo
             BOOST_AUTO(
                 cont,
                 as2::csv( as2::deque<int>( as2::_nil ) % as2::_push_front, 72, 31, 48 )
Modified: sandbox/assign_v2/libs/assign/v2/test/ref/get.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/get.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/get.cpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -22,17 +22,17 @@
 
     void test()
     {
-    	//[test_ref_get
+        //[test_ref_get
         namespace as2 = boost::assign::v2;
         typedef int T; typedef as2::ref::copy_wrapper<T>::type w_;
         boost::array<w_, 3> ref_array; int x, y, z;
         
         boost::copy( 
-        	as2::csv_deque( w_( x ), w_( y ), w_( z ) ), 
+            as2::csv_deque( w_( x ), w_( y ), w_( z ) ), 
             boost::begin( ref_array ) 
         );
         boost::copy( 
-        	as2::csv_deque( 314, 3141, 31415 ), 
+            as2::csv_deque( 314, 3141, 31415 ), 
             boost::begin( ref_array | as2::ref::_get )
         );
 
Modified: sandbox/assign_v2/libs/assign/v2/test/ref/wrapper.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/wrapper.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/wrapper.cpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -37,7 +37,7 @@
         }
         #if BOOST_ASSIGN_V2_ENABLE_CPP0X
         {
- 	       //[test_ref_wrapper
+            //[test_ref_wrapper
             typedef val_ const cval_;
             typedef as2::ref::wrapper_param<val_>::type param_;
             BOOST_MPL_ASSERT(( boost::is_same<param_, cval_> ));
Modified: sandbox/assign_v2/libs/assign/v2/test/unit_testing/Jamfile.v2
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/unit_testing/Jamfile.v2	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/unit_testing/Jamfile.v2	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -21,12 +21,11 @@
     [ assign-test csv ]
     [ assign-test deque ]
     [ assign-test detail ]
-    [ assign-test framework ]
-    [ assign-test optional ]
+    [ assign-test interpreter ]
+    [ assign-test option ]
     [ assign-test pipe ]
     [ assign-test put ]
     [ assign-test ref ]
-    [ assign-test utility ]
 ;
 
 
Modified: sandbox/assign_v2/libs/assign/v2/tutorial.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/tutorial.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/tutorial.cpp	2011-03-24 16:51:41 EDT (Thu, 24 Mar 2011)
@@ -79,7 +79,9 @@
             array<int, 5> consecutive5; int six, seven, eight;
             boost::copy(
                 consecutive8,
-               boost::begin( consecutive5 | _chain( ref::csv_array( six, seven, eight ) | ref::_get ) )
+                   boost::begin( 
+                    consecutive5 | _chain( ref::csv_array( six, seven, eight ) | ref::_get ) 
+                )
             );
 
             assert( range::equal( consecutive5, csv_deque(1, 2, 3, 4, 5) ) );