Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r69414 - in sandbox/assign_v2/libs/assign/v2: src test test/put test/put/container test/put/deque test/put/pipe test/put/pipe/functor test/ref test/ref/array test/utility
From: erwann.rogard_at_[hidden]
Date: 2011-02-28 19:28:24


Author: e_r
Date: 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
New Revision: 69414
URL: http://svn.boost.org/trac/boost/changeset/69414

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/libs/assign/v2/src/main.cpp | 38 ++++++++-------
   sandbox/assign_v2/libs/assign/v2/test/other.cpp | 97 ++++++++-------------------------------
   sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp | 64 +++++++------------------
   sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp | 15 +++--
   sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp | 4
   sandbox/assign_v2/libs/assign/v2/test/put/deque/modulo.cpp | 4
   sandbox/assign_v2/libs/assign/v2/test/put/deque/std.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp | 6 +-
   sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp | 4
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/container.cpp | 76 +++++++++++++++++++++---------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp | 17 ++++++
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp | 77 +++++++++++--------------------
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp | 14 ++++
   sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp | 18 +++---
   sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp | 12 ++--
   sandbox/assign_v2/libs/assign/v2/test/put/std.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/ref/array/csv.cpp | 18 ++----
   sandbox/assign_v2/libs/assign/v2/test/ref/array/functor.cpp | 13 +---
   sandbox/assign_v2/libs/assign/v2/test/ref/list_tuple.cpp | 6 ++
   sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp | 10 ++--
   sandbox/assign_v2/libs/assign/v2/test/utility/convert.cpp | 3 -
   21 files changed, 222 insertions(+), 278 deletions(-)

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-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -1,36 +1,38 @@
 
 // Test
-/*
 #include <libs/assign/v2/test/detail.h>
 #include <libs/assign/v2/test/ref.h>
 #include <libs/assign/v2/test/put.h>
 #include <libs/assign/v2/test/utility.h>
 #include <libs/assign/v2/test/other.h>
-*/
+
 // Speed
 //#include <fstream>
 //#include <libs/assign/v2/speed/put_ref.h>
 
+#include <boost/assign/v2/put/pipe.hpp>
+
 int main (int argc, char * const argv[])
 {
-
+
     // Do not put libs/assign/v2/test/unit_testing in this project
     {
- //using namespace test_assign_v2;
- //xxx_detail::test();
- //xxx_put::test();
- //xxx_ref::test();
- //xxx_utility::test();
- //xxx_other::test();
+ using namespace test_assign_v2;
+ xxx_detail::test();
+ xxx_put::test();
+ xxx_ref::test();
+ xxx_utility::test();
+ xxx_other::test();
     }
-/*
- {
- using namespace speed_assign_v2;
- std::ofstream ofs("results");
- xxx_put_ref::run(ofs);
- }
-*/
-
+
+ /*
+ {
+ using namespace speed_assign_v2;
+ std::ofstream ofs("results");
+ xxx_put_ref::run(ofs);
+ }
+ */
+
     return 0;
-
+
 }

Modified: sandbox/assign_v2/libs/assign/v2/test/other.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/other.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/other.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -12,6 +12,8 @@
 #include <list>
 #include <map>
 #include <vector>
+#include <boost/mpl/assert.hpp>
+#include <boost/type_traits/is_same.hpp>
 #include <boost/array.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/next_prior.hpp>
@@ -20,15 +22,19 @@
 #include <boost/range/algorithm/stable_partition.hpp>
 #include <boost/range/algorithm/equal.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/detail/check/equal_ref.hpp>
+#include <boost/assign/v2/detail/check/equal_val.hpp>
 #include <boost/assign/v2/utility/chain.hpp>
-#include <boost/assign/v2/ref/wrapper/adaptor_get.hpp>
+#include <boost/assign/v2/utility/chain/alias.hpp>
+#include <boost/assign/v2/ref/wrapper/range_get.hpp>
 #include <boost/assign/v2/ref/array/csv.hpp>
 #include <boost/assign/v2/ref/array/functor.hpp>
 #include <boost/assign/v2/ref/array/functor/converter.hpp>
 #include <boost/assign/v2/put/container.hpp>
 #include <boost/assign/v2/put/deque/csv.hpp>
-#include <boost/assign/v2/put/pipe/functor.hpp>
 #include <boost/assign/v2/put/container/functor.hpp>
+#include <boost/assign/v2/put/pipe/functor.hpp>
+#include <boost/assign/v2/put/pipe/csv.hpp>
 #include <boost/assign/v2/put/std.hpp>
 #include <boost/assign/v2/put/ext.hpp>
 #include <boost/assign/v2/utility/csv.hpp>
@@ -44,18 +50,20 @@
         namespace as2 = boost::assign::v2;
                 namespace lambda = boost::lambda;
 
+
                 // INTRODUCTION
         {
                 // suggested by JB:
- //[csv_put_pipe
+
+ //[other_put_pipe_csv
             std::deque<int> cont;
             boost::range::stable_partition(
                 /*<< Calls `cont.push_back( t )` for [^t=0,...,5], and returns `cont` >>*/
- cont | as2::csv( as2::_put, 0, 1, 2, 3, 4, 5),
+ cont | as2::_csv_put( 0, 1, 2, 3, 4, 5 ),
                 lambda::_1 % 2
             );
             //]
- //[csv_array
+ //[other_ref_csv_array
             BOOST_ASSIGN_V2_CHECK(boost::range::equal(
                 cont,
                 /*<< The input [^1, 3, ..., 4] is held by reference (not copies) >>*/
@@ -65,7 +73,7 @@
         }
                 // REF + CONVERTER
         {
- //[array_converter
+ //[other_convert_ref_array
             typedef std::pair<std::string, int> T;
             typedef std::vector<T> cont_;
             cont_ cont = converter( // name lookup
@@ -81,16 +89,14 @@
         }
                 // CHAIN + REF
         {
- //[chain_w
+ //[other_chain_write
+ /*<< Needed to bring && into scope >>*/ using namespace boost::assign::v2;
             std::vector<int> r( 3 ); r[0] = 1; r[1] = 2; r[2] = 0;
- boost::array<int, 2> cont; int z; // lvalues
+ /*<< lvalue >>*/boost::array<int, 2> cont; /*<< lvalue >>*/ int z;
             boost::copy(
                 r,
                 boost::begin(
- cont | as2::_chain(
- as2::ref::csv_array( z ) // rvalue!
- | as2::ref::_get
- )
+ cont && (/*<< rvalue >>*/ as2::ref::csv_array( z ) | as2::ref::_get )
                 )
             );
             BOOST_ASSIGN_V2_CHECK( cont[0] == r[0] );
@@ -101,7 +107,7 @@
                 // PUT + CSV
         // container.hpp
         {
- //[csv_put_default
+ //[other_csv_put
             typedef int T; T x = 1, y = 2, z = 0;
             std::list<T> cont;
             as2::csv( as2::put( cont ) , x, y, z );
@@ -112,23 +118,11 @@
         }
         // modulo.hpp
         {
- //[csv_put_fun
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<int> cont;
- cont | as2::csv(
- as2::_put % ( as2::_fun = ( lambda::_1 + 1 ) ),
- x, y, z
- );
- BOOST_ASSIGN_V2_CHECK( cont.front() == ( x + 1 ) );
- BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
- //]
- }
- {
- //[csv_put_id
+ //[other_put_modulo
             typedef int T; T x = 1, y = 2, z = 0;
             std::list<T> cont;
             as2::csv(
- as2::put( cont ) % ( as2::_fun = as2::_identity ),
+ /*<< Might be more efficient than as2::put( cont ) >>*/as2::put( cont ) % ( as2::_fun = as2::_identity ),
                 x, y, z
             );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
@@ -136,55 +130,6 @@
             //]
             BOOST_ASSIGN_V2_CHECK( *boost::next( boost::begin( cont ) ) == y );
         }
- // std.hpp
- {
- //[csv_put_push_front
- typedef int T; T x = 1, y = 2, z = 0;
- std::deque<int> cont;
- cont | as2::csv( as2::_put % as2::_push_front, x, y ,z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == z );
- BOOST_ASSIGN_V2_CHECK( cont.back() == x );
- //]
- }
- // ext.hpp
- {
- //[csv_put_lookup
- std::map<std::string, int> cont;
- cont["jan"] = 29; cont["feb"] = 26; cont["mar"] = 29;
- cont |
- as2::csv(
- as2::_put % ( as2::_lookup = ( lambda::_1 +=2 ) )
- , "jan", "feb", "mar"
- );
- BOOST_ASSIGN_V2_CHECK( cont["feb"] == 28 );
- //]
- BOOST_ASSIGN_V2_CHECK( cont["jan"] == 31 );
- BOOST_ASSIGN_V2_CHECK( cont["mar"] == 31 );
- }
- {
- //[csv_put_repeat
- typedef int T; std::deque<T> cont; T x = 1, y = 2, z = 0;
- cont | as2::csv( as2::_put % ( as2::_repeat = 2 ), x, y, z );
- BOOST_ASSIGN_V2_CHECK( cont.size() == 6 );
- //]
- BOOST_ASSIGN_V2_CHECK( cont[0] == x );
- BOOST_ASSIGN_V2_CHECK( cont[1] == x );
- BOOST_ASSIGN_V2_CHECK( cont[2] == y );
- BOOST_ASSIGN_V2_CHECK( cont[3] == y );
- BOOST_ASSIGN_V2_CHECK( cont[4] == z );
- BOOST_ASSIGN_V2_CHECK( cont[5] == z );
- }
- {
- //[csv_put_iterate
- typedef int T; T x = 1, y = 2, z = 0;
- boost::array<T, 3> cont; cont[0] = x;
- cont | as2::csv( as2::_put % ( as2::_iterate = 1 ) , y, z );
- BOOST_ASSIGN_V2_CHECK( cont[1] == y );
- //]
- BOOST_ASSIGN_V2_CHECK( cont[0] == x );
- BOOST_ASSIGN_V2_CHECK( cont[2] == z );
- }
-
     }
 
 }// xxx_other

Modified: sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/container/functor.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -30,7 +30,7 @@
     void test(){
         namespace as2 = boost::assign::v2;
         {
- //[array
+ //[put_cont_functor_array
             typedef int T; T x = 1, y = 2, z = 3;
             boost::array<T, 3> cont; as2::put( cont )( x )( y )( z );
             BOOST_ASSIGN_V2_CHECK( cont[0] == x );
@@ -40,7 +40,7 @@
         {
             // std::string may be replaced by const char* using a custom
             // comparator
- //[map
+ //[put_cont_functor_map
             typedef std::map<std::string, int> C; C cont;
             as2::put( cont )( "jan", 31 )( "feb", 28 )( "mar", 31 );
             BOOST_ASSIGN_V2_CHECK( cont["feb"] == 28 );
@@ -50,7 +50,7 @@
         }
         {
                 // Used in intro (same as above but different naming)
- //[cal
+ //[put_cont_functor_cal
             typedef std::map<std::string, int> C; C cal;
             /*<< Calls `cal.insert( C::value_type(x, y) )` for [^(x,y)=( "jan", 31 ),( "feb", 28 ),( "mar", 31 )] >>*/
             as2::put( cal )( "jan", 31 )( "feb", 28 )( "mar", 31 );
@@ -58,7 +58,7 @@
             //]
         }
         {
- //[set
+ //[put_cont_functor_set
             typedef std::string T;
             std::set<T> cont;
             T x = "isomer", y = "ephemeral", z = "prosaic";
@@ -68,7 +68,7 @@
             //]
         }
         {
- //[deque
+ //[put_cont_functor_deque
             typedef int T; T x = 1, y = 2, z = 0;
             std::deque<T> cont; as2::put( cont )( x )( y )( z );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
@@ -76,7 +76,7 @@
             //]
         }
         {
- //[list
+ //[put_cont_functor_list
             typedef int T; T x = 1, y = 2, z = 0;
             std::list<T> cont; ( as2::put( cont ) )( x )( y )( z );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
@@ -84,7 +84,7 @@
             //]
         }
         {
- //[vector
+ //[put_cont_functor_vector
             typedef int T; T x = 1, y = 2, z = 0;
             std::vector<T> cont; as2::put( cont )( x )( y )( z );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
@@ -92,7 +92,7 @@
             //]
         }
         {
- //[queue
+ //[put_cont_functor_queue
             typedef int T; T x = 8, y = 7, z = 4;
             std::queue<T> fifo; as2::put( fifo )( x )( y )( z );
             BOOST_ASSIGN_V2_CHECK( fifo.front() == x );
@@ -100,7 +100,7 @@
             //]
         }
         {
- //[stack
+ //[put_cont_functor_stack
             typedef int T; T x = 8, y = 7, z = 4;
             std::stack<T> lifo; as2::put( lifo )( x )( y )( z );
             BOOST_ASSIGN_V2_CHECK( lifo.top() == z ); lifo.pop();
@@ -110,42 +110,16 @@
         }
         {
             using namespace boost;
- //[tuple
- typedef int& ref_; typedef std::string val_;
- typedef boost::tuple<ref_, val_> T;
- int x = 31, y = 28, z = 31; std::vector<T> cont;
- as2::put( cont )( x, "jan" )( y, "feb" )( z, "mar" );
- BOOST_ASSIGN_V2_CHECK( &get<0>( cont[1] ) == &y );
- BOOST_ASSIGN_V2_CHECK( get<1>( cont[1] ) == "feb" );
- //]
- BOOST_ASSIGN_V2_CHECK( &get<0>( cont[0] ) == &x );
- BOOST_ASSIGN_V2_CHECK( get<1>( cont[0] ) == "jan" );
- BOOST_ASSIGN_V2_CHECK( &get<0>( cont[2] ) == &z );
- BOOST_ASSIGN_V2_CHECK( get<1>( cont[2] ) == "mar" );
- }
- {
- //[default_constr1
- typedef int T; T x = 1, z = 0;
- std::vector<T> cont; as2::put( cont )( x )()( z );
- BOOST_ASSIGN_V2_CHECK( cont[0] == x );
- BOOST_ASSIGN_V2_CHECK( cont[1] == T() );
- BOOST_ASSIGN_V2_CHECK( cont[2] == z );
- //]
- }
- {
- using namespace boost;
- //[default_constr2
- typedef std::string a_; typedef int b_;
- typedef boost::tuple<a_, b_> T;
- a_ a0 = "jan", a1 = "feb", a2 = "mar";
- b_ b0 = 31; //, b1 = 28, b2 = 31;
- std::vector<T> cont; as2::put( cont )( a0, b0 )()( a2 );
- BOOST_ASSIGN_V2_CHECK( get<0>( cont[0] ) == a0 );
- BOOST_ASSIGN_V2_CHECK( get<1>( cont[0] ) == b0 );
- BOOST_ASSIGN_V2_CHECK( get<0>( cont[1] ) == get<0>( T() ) );
- BOOST_ASSIGN_V2_CHECK( get<1>( cont[1] ) == get<1>( T() ) );
- BOOST_ASSIGN_V2_CHECK( get<0>( cont[2] ) == a2 );
- BOOST_ASSIGN_V2_CHECK( get<1>( cont[2] ) == b_() );
+ //[put_cont_functor_tuple
+ typedef int i_; typedef double d_;
+ typedef boost::tuple</*<< Notice this is a reference >>*/ d_&, i_> T;
+ d_ w = 2.7, x = 2.71, y = 2.718, z = 0.0; std::vector<T> cont;
+ as2::put( cont )/*<< Notice the binary calls >>*/( w, 1 )( x, 2 )( y, 3 )/*<< Notice the unary call >>*/( z );
+ BOOST_ASSIGN_V2_CHECK( &get<0>( cont[1] ) == &x );
+ BOOST_ASSIGN_V2_CHECK( get<1>( cont[1] ) == 2 );
+ T t3( z );
+ BOOST_ASSIGN_V2_CHECK( &get<0>( cont[3] ) == &z );
+ BOOST_ASSIGN_V2_CHECK( get<1>( cont[3] ) == get<1>( t3 ) );
             //]
         }
     }// test()

Modified: sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/container/range.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -25,26 +25,29 @@
         namespace as2 = boost::assign::v2;
 
         //[range_var
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
         //]
         // Forwards to put()
         {
- //[range_array
+ //[put_cont_range_array
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
             boost::array<T, 3> cont; as2::put_range( cont, r );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );
             //]
         }
         {
- //[range_stack
+ //[put_cont_range_stack
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
             typedef std::stack<T> lifo_;
             BOOST_ASSIGN_V2_CHECK( as2::put_range<lifo_>( r ).top() == z );
             //]
         }
- // Calls C(b, e)
         {
- //[range_deque
+ //[put_cont_range_deque
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
             std::deque<T> cont; as2::put_range( cont, r );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );

Modified: sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deque/functor.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -22,9 +22,9 @@
     {
         namespace as2 = boost::assign::v2;
         {
- //[deque
+ //[put_deque_functor
             typedef int T; T x = 1, z = 0;
- as2::result_of::deque<T>::type cont = as2::deque<T>( x )()( z );
+ as2::result_of::deque<T>::type cont = as2::deque<T>/*<<k = 1, 0, 1, respectively>>*/( x )()( z );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
             BOOST_ASSIGN_V2_CHECK( cont[1] == T() );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );

Modified: sandbox/assign_v2/libs/assign/v2/test/put/deque/modulo.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deque/modulo.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deque/modulo.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -29,7 +29,7 @@
         namespace as2 = boost::assign::v2;
 
         {
- //[deque_front
+ //[put_deque_modulo_front
             BOOST_AUTO(
                 cont, (
                     as2::deque<int>( as2::_nil ) % as2::_push_front
@@ -41,7 +41,7 @@
             BOOST_ASSIGN_V2_CHECK( boost::size( cont ) == 3 );
         }
         {
- //[deque_repeat
+ //[put_deque_modulo_repeat
             BOOST_AUTO(
                 cont, (
                     as2::deque<int>( as2::_nil ) % ( as2::_repeat = 2 )

Modified: sandbox/assign_v2/libs/assign/v2/test/put/deque/std.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/deque/std.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/deque/std.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -23,7 +23,7 @@
         namespace as2 = boost::assign::v2;
         {
             typedef int T; T x = 1, y = 2, z = 0;
- //[deque_front
+ //[put_deque_std_front
             BOOST_AUTO(
                 cont,
                 (

Modified: sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/ext.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -26,7 +26,7 @@
         namespace as2 = boost::assign::v2;
         namespace lambda = boost::lambda;
         {
- //[iterate
+ //[put_ext_iterate
             boost::array<int, 3> cont;
             ( as2::put( cont ) % as2::_iterate )( 1 )( 2 )( 3 );
             BOOST_ASSIGN_V2_CHECK( cont[0] == 1 );
@@ -34,7 +34,7 @@
             //]
         }
         {
- //[lookup
+ //[put_ext_lookup
             std::map<std::string, int> cont;
             cont["jan"] = 31; cont["feb"] = 29; cont["mar"] = 32;
             (
@@ -45,7 +45,7 @@
             //]
         }
         {
- //[repeat
+ //[put_ext_repeat
             std::vector<int> cont;
             ( as2::put( cont ) % ( as2::_repeat = 2 ) )( -1 )( 0 )( 1 );
             BOOST_ASSIGN_V2_CHECK( cont.size() == 6 );

Modified: sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/modulo.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -25,7 +25,7 @@
         namespace as2 = boost::assign::v2;
         namespace lambda = boost::lambda;
         {
- //[modulo_fun
+ //[put_modulo_fun
             typedef int T; T x = 1, y = 2, z = 0;
             std::vector<int> cont;
             (
@@ -36,7 +36,7 @@
             //]
         }
         {
- //[modulo_push_front
+ //[put_modulo_modifier
             typedef int T; T x = 1, y = 2, z = 0;
             std::deque<int> cont;
             ( as2::put( cont ) % ( as2::_modifier

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/container.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/container.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/container.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -18,6 +18,7 @@
 #include <string>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/pipe/functor.hpp>
+#include <boost/assign/v2/put/pipe/csv.hpp> // Until workaround
 
 #include <libs/assign/v2/test/put/pipe/functor/container.h>
 
@@ -30,74 +31,101 @@
     void test(){
         namespace as2 = boost::assign::v2;
         {
- //[pipe_array
+ //[put_pipe_functor_array
             typedef int T;
             T x = 1, y = 2, z = 3;
             boost::array<T, 3> cont;
- cont | as2::_put( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont[0] == x );
+ BOOST_ASSIGN_V2_CHECK(
+ ( cont | as2::_put( x )( y )( z ) )[0] == x
+ );
             BOOST_ASSIGN_V2_CHECK( cont[2] == z );
             //]
         }
         {
- //[pipe_map
+ //[put_pipe_csv_array
+ typedef int T;
+ T x = 1, y = 2, z = 3;
+ boost::array<T, 3> cont;
+ BOOST_ASSIGN_V2_CHECK(
+ ( cont | as2::_csv_put( x, y, z ) )[0] == x
+ );
+ BOOST_ASSIGN_V2_CHECK( cont[2] == z );
+ //]
+ }
+ {
+ //[put_pipe_functor_map
             std::map<std::string, int> assoc;
- assoc | as2::_put( "jan", 31 )( "feb", 28 )( "mar", 31 );
- BOOST_ASSIGN_V2_CHECK( assoc["feb"] == 28 );
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ assoc | as2::_put( "jan", 31 )( "feb", 28 )( "mar", 31 )
+ )["feb"] == 28
+ );
             //]
         }
         {
- //[pipe_set
+ //[put_pipe_functor_set
             typedef std::string T;
             std::set<T> assoc;
             T x = "isomer", y = "ephemeral", z = "prosaic";
- assoc | as2::_put( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( assoc.count( x ) == 1 );
+ BOOST_ASSIGN_V2_CHECK(
+ ( assoc | as2::_put( x )( y )( z ) ).count( x ) == 1
+ );
             BOOST_ASSIGN_V2_CHECK( assoc.count( z ) == 1 );
             //]
         }
         {
- //[pipe_deque
+ //[put_pipe_functor_deque
             typedef int T; T x = 1, y = 2, z = 0;
             std::deque<T> cont;
- cont | as2::_put( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
+ BOOST_ASSIGN_V2_CHECK((
+ cont | as2::_put( x )( y )( z )
+ ).front() == x );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );
             //]
         }
         {
- //[pipe_list
+ //[put_pipe_functor_list
             typedef int T; T x = 1, y = 2, z = 0;
             std::list<T> cont;
- cont | as2::_put( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ cont | as2::_put( x )( y )( z )
+ ).front() == x );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );
             //]
         }
         {
- //[pipe_vector
+ //[put_pipe_functor_vector
             typedef int T; T x = 1, y = 2, z = 0;
             std::vector<T> cont;
- cont | as2::_put( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ cont | as2::_put( x )( y )( z )
+ ).front() == x
+ );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );
             //]
         }
         {
- //[pipe_queue
+ //[put_pipe_functor_queue
             typedef int T; T x = 8, y = 7, z = 6;
             std::queue<T> fifo;
- fifo | as2::_put( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( fifo.front() == x );
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ fifo | as2::_put( x )( y )( z )
+ ).front() == x
+ );
             BOOST_ASSIGN_V2_CHECK( fifo.back() == z );
             //]
         }
         {
- //[pipe_stack
+ //[put_pipe_functor_stack
             typedef int T; T x = 8, y = 7, z = 4;
             std::stack<T> lifo;
- lifo | as2::_put( x )( y )( z );
- BOOST_ASSIGN_V2_CHECK( lifo.top() == z ); lifo.pop();
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ lifo | as2::_put( x )( y )( z )
+ ).top() == z ); lifo.pop();
             BOOST_ASSIGN_V2_CHECK( lifo.top() == y );
             //]
         }

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/fun.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -8,10 +8,11 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
 #include <vector>
+#include <boost/lambda/lambda.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/modulo/fun.hpp>
 #include <boost/assign/v2/put/pipe/functor.hpp>
-#include <boost/lambda/lambda.hpp>
+#include <boost/assign/v2/put/pipe/csv.hpp>
 #include <libs/assign/v2/test/put/pipe/functor/fun.h>
 
 namespace test_assign_v2{
@@ -25,7 +26,7 @@
         namespace as2 = boost::assign::v2;
         namespace lambda = boost::lambda;
         {
- //[fun
+ //[put_pipe_functor_fun
             typedef int T; T x = 1, y = 2, z = 0;
             std::vector<int> cont;
             cont | (
@@ -35,6 +36,18 @@
             BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
             //]
         }
+ {
+ //[put_pipe_csv_fun
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::vector<int> cont;
+ BOOST_ASSIGN_V2_CHECK(
+ (
+ cont | ( as2::_csv_put % ( as2::_fun = ( lambda::_1 + 1 ) )
+ )( x, y, z ) ).front() == ( x + 1 )
+ );
+ BOOST_ASSIGN_V2_CHECK( cont.back() == ( z + 1 ) );
+ //]
+ }
     }
 
 }// xxx_fun

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/rhs.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -13,7 +13,8 @@
 #include <boost/assign/v2/detail/check/equal_val.hpp>
 #include <boost/assign/v2/detail/check/equal_ref.hpp>
 #include <boost/assign/v2/put/ext/repeat.hpp>
-#include <boost/assign/v2/put/pipe/functor.hpp>
+#include <boost/assign/v2/put/pipe/functor.hpp> // rhs?
+#include <boost/assign/v2/utility/csv.hpp>
 #include <libs/assign/v2/test/put/pipe/functor/rhs.h>
 
 namespace test_assign_v2{
@@ -22,23 +23,6 @@
 namespace xxx_functor{
 namespace xxx_rhs{
 
- template<int i, int j, typename T, typename P, typename U>
- void xxx_assert(T& rhs, P const& pred, U const& u)
- {
- // TODO name lookup?
- #if BOOST_ASSIGN_V2_ENABLE_CPP0X
- using namespace boost::assign::v2::ref; // tuple (cpp0x)
- #else
- using namespace boost; // tuple<> (cpp03)
- #endif
- pred(
- get<j>(
- rhs.seq_args().get( boost::mpl::int_<i>() )
- ),
- u
- );
- }
-
     void test()
     {
         namespace as2 = boost::assign::v2;
@@ -50,10 +34,14 @@
             int n = as2::ref::at<0>( rhs.pars() ).arg();
             BOOST_ASSIGN_V2_CHECK( n == 3 );
         }
+ namespace chk = as2::check_aux;
+ namespace aux_ = as2::put_pipe_aux;
+ typedef chk::equal_ref r_;
+ typedef chk::equal_val v_;
         {
- /* rvalue */
- #define A -10
- #define B 10
+/* rvalue */
+#define A -10
+#define B 10
             /* lvalue */
             int a1 = -1, b1 = 0;
             typedef const int cint_;
@@ -72,47 +60,36 @@
                 )
             );
 
- namespace chk = as2::check_aux;
- typedef chk::equal_ref r_;
- typedef chk::equal_val v_;
-
- xxx_assert<0, 0>( rhs, r_(), a1);
- xxx_assert<0, 1>( rhs, r_(), b1);
- xxx_assert<1, 0>( rhs, r_(), a1); xxx_assert<1, 1>( rhs, r_(), b);
- xxx_assert<2, 0>( rhs, r_(), a1); xxx_assert<2, 1>( rhs, v_(), B);
-
- xxx_assert<3, 0>( rhs, r_(), a ); xxx_assert<3, 1>( rhs, r_(), b1);
- xxx_assert<4, 0>( rhs, r_(), a ); xxx_assert<4, 1>( rhs, r_(), b);
- xxx_assert<5, 0>( rhs, r_(), a ); xxx_assert<5, 1>( rhs, v_(), B);
-
- xxx_assert<6, 0>( rhs, v_(), A); xxx_assert<6, 1>( rhs, r_(), b1);
- xxx_assert<7, 0>( rhs, v_(), A); xxx_assert<7, 1>( rhs, r_(), b);
- xxx_assert<8, 0>( rhs, v_(), A); xxx_assert<8, 1>( rhs, v_(), B);
-
- xxx_assert<9, 0>( rhs, r_(), a1);
- xxx_assert<10, 0>( rhs, r_(), a);
- xxx_assert<11, 0>( rhs, v_(), A);
-
+ aux_::check_rhs<0, 0>( rhs, r_(), a1);
+ aux_::check_rhs<0, 1>( rhs, r_(), b1);
+ aux_::check_rhs<1, 0>( rhs, r_(), a1); aux_::check_rhs<1, 1>( rhs, r_(), b);
+ aux_::check_rhs<2, 0>( rhs, r_(), a1); aux_::check_rhs<2, 1>( rhs, v_(), B);
+
+ aux_::check_rhs<3, 0>( rhs, r_(), a ); aux_::check_rhs<3, 1>( rhs, r_(), b1);
+ aux_::check_rhs<4, 0>( rhs, r_(), a ); aux_::check_rhs<4, 1>( rhs, r_(), b);
+ aux_::check_rhs<5, 0>( rhs, r_(), a ); aux_::check_rhs<5, 1>( rhs, v_(), B);
+
+ aux_::check_rhs<6, 0>( rhs, v_(), A); aux_::check_rhs<6, 1>( rhs, r_(), b1);
+ aux_::check_rhs<7, 0>( rhs, v_(), A); aux_::check_rhs<7, 1>( rhs, r_(), b);
+ aux_::check_rhs<8, 0>( rhs, v_(), A); aux_::check_rhs<8, 1>( rhs, v_(), B);
+
+ aux_::check_rhs<9, 0>( rhs, r_(), a1);
+ aux_::check_rhs<10, 0>( rhs, r_(), a);
+ aux_::check_rhs<11, 0>( rhs, v_(), A);
 #undef A
 #undef B
         }
         {
+ // str_literal
             BOOST_AUTO(rhs, as2::_put( "x" ) );
             typedef boost::mpl::int_<0> int_;
             typedef std::string str_;
- // TODO find a simpler way:
             #if BOOST_ASSIGN_V2_ENABLE_CPP0X
             using namespace boost::assign::v2::ref;
             #else
             using namespace boost;
             #endif
- BOOST_ASSIGN_V2_CHECK(
- str_(
- get<0>(
- rhs.seq_args().get( int_() )
- )
- ) == "x"
- );
+ aux_::check_rhs<0, 0>( rhs, v_(), str_( "x" ) );
         }
     }
 

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/functor/std.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -8,10 +8,11 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
 //////////////////////////////////////////////////////////////////////////////
 #include <deque>
+#include <boost/lambda/lambda.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/put/std/push_front.hpp>
 #include <boost/assign/v2/put/pipe/functor.hpp>
-#include <boost/lambda/lambda.hpp>
+#include <boost/assign/v2/put/pipe/csv.hpp>
 #include <libs/assign/v2/test/put/pipe/functor/std.h>
 
 namespace test_assign_v2{
@@ -25,7 +26,7 @@
         namespace as2 = boost::assign::v2;
         namespace lambda = boost::lambda;
         {
- //[push_front
+ //[put_pipe_functor_push_front
             typedef int T; T x = 1, y = 2, z = 0;
             std::deque<int> cont;
             cont | ( as2::_put % as2::_push_front )( x )( y )( z );
@@ -33,6 +34,15 @@
             BOOST_ASSIGN_V2_CHECK( cont.back() == x );
             //]
         }
+ {
+ //[put_pipe_csv_push_front
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::deque<int> cont;
+ cont | ( as2::_csv_put % as2::_push_front )( x, y, z );
+ BOOST_ASSIGN_V2_CHECK( cont.front() == z );
+ BOOST_ASSIGN_V2_CHECK( cont.back() == x );
+ //]
+ }
     }
 
 }// xxx_std

Modified: sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/pipe/range.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -25,21 +25,21 @@
     {
         namespace as2 = boost::assign::v2;
 
- //[range_var
- typedef int T; T x = 1, y = 2, z = 0;
- std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
- //]
 
         // Forwards to put()
         {
- //[range_array
+ //[put_pipe_range_array
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
             boost::array<T, 3> cont; cont | as2::_put_range( r );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );
             //]
         }
         {
- //[range_stack
+ //[put_pipe_range_stack
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
             typedef std::stack<T> lifo_;
             BOOST_ASSIGN_V2_CHECK(
                 (
@@ -48,10 +48,10 @@
             );
             //]
         }
-
- // Calls C(b, e)
         {
- //[range_deque
+ //[put_pipe_range_deque
+ typedef int T; T x = 1, y = 2, z = 0;
+ std::vector<T> r( 3 ); r[0] = x; r[1] = y; r[2] = z;
             std::deque<T> cont; cont | as2::_put_range( r );
             BOOST_ASSIGN_V2_CHECK( cont.front() == x );
             BOOST_ASSIGN_V2_CHECK( cont.back() == z );

Modified: sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -26,7 +26,7 @@
     void test(){
         namespace as2 = boost::assign::v2;
         {
- //[array
+ //[put_ptr_array
             typedef int T;
             T x = 1, y = 2, z = 3;
             boost::ptr_array<T, 3> cont; as2::put( cont )( x )( y )( z );
@@ -38,14 +38,14 @@
 /*
                 // These are not yet available (TODO)
         {
- //[map
+ //[put_ptr_map
             boost::ptr_map<std::string, int> assoc;
             as2::put( assoc )( "jan", 31 )( "feb", 28 )( "mar", 31 );
             BOOST_ASSIGN_V2_CHECK( assoc["feb"] == 28 );
             //]
         }
         {
- //[set
+ //[put_ptr_set
             typedef std::string T;
             boost::ptr_set<T> assoc;
             T x = "isomer", y = "ephemeral", z = "prosaic";
@@ -56,7 +56,7 @@
         }
 */
         {
- //[deque
+ //[put_ptr_deque
             typedef int T; T x = 1, y = 2, z = 0;
             boost::ptr_deque<T> cont;
             as2::put( cont )( x )( y )( z );
@@ -65,7 +65,7 @@
             //]
         }
         {
- //[list
+ //[put_ptr_list
             typedef int T; T x = 1, y = 2, z = 0;
             boost::ptr_list<T> cont;
             ( as2::put( cont ) )( x )( y )( z );
@@ -74,7 +74,7 @@
             //]
         }
         {
- //[vector
+ //[put_ptr_vector
             typedef int T; T x = 1, y = 2, z = 0;
             boost::ptr_vector<T> cont;
             as2::put( cont )( x )( y )( z );

Modified: sandbox/assign_v2/libs/assign/v2/test/put/std.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/std.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/std.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -25,7 +25,7 @@
         /deduce/dependee.hpp */
 
         {
- //[std_deque
+ //[put_std_push_front
             typedef int T; T x = 0, y = 2, z = 1;
             std::deque<T> cont;
             ( as2::put( cont ) % as2::_push_front )( x )( y )( z );

Modified: sandbox/assign_v2/libs/assign/v2/test/ref/array/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/array/csv.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/array/csv.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -25,37 +25,31 @@
     {
         namespace as2 = boost::assign::v2;
         {
- //[ref_csv_array_r
+ //[ref_array_csv
             typedef int const T;
             T x = 1, y = 2, z = 0;
             typedef as2::ref::nth_result_of::csv_array<3, T>::type ar_;
             ar_ ar = as2::ref::csv_array( x, y, z );
- //]
             {
- //[ref_if_fb
- T& rx = ar.front(); T& rz = ar.back();
+ T& rx = ar[0]; T& rz = ar[2];
                 BOOST_ASSIGN_V2_CHECK( &rx == &x );
                 BOOST_ASSIGN_V2_CHECK( &rz == &z );
- //]
             }
+ //]
             {
- //[ref_if_brackets
- T& rx = ar[0]; T& rz = ar[2];
+ T& rx = ar.front(); T& rz = ar.back();
                 BOOST_ASSIGN_V2_CHECK( &rx == &x );
                 BOOST_ASSIGN_V2_CHECK( &rz == &z );
- //]
             }
             {
- //[ref_if_it
                 T& rx = (*boost::begin( ar ) );
                 T& rz = *boost::next( boost::begin( ar ), 2 );
                 BOOST_ASSIGN_V2_CHECK( &rx == &x );
                 BOOST_ASSIGN_V2_CHECK( &rz == &z );
- //]
             }
         }
         {
- //[ref_csv_array_w
+ //[ref_array_csv_w
             typedef int T; T x, y, z;
             std::vector<T> r( 3 ); r[0] = 1; r[1] = 2; r[2] = 0;
             boost::copy( r, boost::begin(
@@ -67,7 +61,7 @@
             //]
         }
         {
- //[ref_csv_array_as
+ //[ref_array_csv_assign
             typedef int T; T x, y, z;
             as2::ref::csv_array( x, y, z ).assign( -1 );
             BOOST_ASSIGN_V2_CHECK( x == -1 );

Modified: sandbox/assign_v2/libs/assign/v2/test/ref/array/functor.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/array/functor.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/array/functor.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -26,37 +26,32 @@
     {
         namespace as2 = boost::assign::v2;
         {
- //[ref_array_r
+ //[ref_array_functor_r
             typedef int const T;
             T x = 1, y = 2, z = 0;
             typedef as2::ref::nth_result_of::array<3, T>::type ar_;
             ar_ ar = as2::ref::array( x )( y )( z );
- //]
             {
- //[ref_if_fb
                 T& rx = ar.front(); T& rz = ar.back();
                 BOOST_ASSIGN_V2_CHECK( &rx == &x );
                 BOOST_ASSIGN_V2_CHECK( &rz == &z );
- //]
             }
+ //]
             {
- //[ref_if_brackets
                 T& rx = ar[0]; T& rz = ar[2];
                 BOOST_ASSIGN_V2_CHECK( &rx == &x );
                 BOOST_ASSIGN_V2_CHECK( &rz == &z );
                 //]
             }
             {
- //[ref_if_it
                 T& rx = ( *boost::begin( ar ) );
                 T& rz = *boost::next( boost::begin( ar ), 2 );
                 BOOST_ASSIGN_V2_CHECK( &rx == &x );
                 BOOST_ASSIGN_V2_CHECK( &rz == &z );
- //]
             }
         }
         {
- //[ref_array_w
+ //[ref_array_functor_w
             typedef int T; T x, y, z;
             std::vector<T> r( 3 ); r[0] = 1; r[1] = 2; r[2] = 0;
             boost::copy( r, boost::begin(
@@ -68,7 +63,7 @@
             //]
         }
         {
- //[ref_array_as
+ //[ref_array_functor_as
             typedef int T; T x, y, z;
             as2::ref::array( x )( y )( z ).assign( -1 );
             BOOST_ASSIGN_V2_CHECK( x == -1 );

Modified: sandbox/assign_v2/libs/assign/v2/test/ref/list_tuple.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/list_tuple.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/list_tuple.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -89,6 +89,12 @@
             BOOST_ASSIGN_V2_CHECK( &get<0>( list.get( i2_() ) ) == &b );
             BOOST_ASSIGN_V2_CHECK( get<0>( list.get( i3_() ) ) == B );
 
+ result_ list2 = list;
+ BOOST_ASSIGN_V2_CHECK( &get<0>( list2.get( i0_() ) ) == &a );
+ BOOST_ASSIGN_V2_CHECK( get<0>( list2.get( i1_() ) ) == A );
+ BOOST_ASSIGN_V2_CHECK( &get<0>( list2.get( i2_() ) ) == &b );
+ BOOST_ASSIGN_V2_CHECK( get<0>( list2.get( i3_() ) ) == B );
+
         }
         {
             typedef boost::mpl::vector2<lvalue_, lvalue_> v0_;

Modified: sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -35,12 +35,12 @@
         {
             //[chain_r
             typedef int T;
- boost::array<T, 2> cont; cont[0] = 0; cont[1] = 1;
- std::list<T> list; list.push_back( 2 ); list.push_back( 3 );
- std::vector<T> v( boost::begin( cont ), boost::end( cont ) );
- boost::copy( list, std::back_inserter( v ) );
+ boost::array<T, 2> cont1; cont1[0] = 0; cont1[1] = 1;
+ std::list<T> cont2; cont2.push_back( 2 ); cont2.push_back( 3 );
+ std::vector<T> joined( boost::begin( cont1 ), boost::end( cont1 ) );
+ boost::copy( cont2, std::back_inserter( joined ) );
             BOOST_ASSIGN_V2_CHECK(
- boost::range::equal( v, cont | as2::_chain( list ) )
+ boost::range::equal( joined, cont1 | as2::_chain( cont2 ) )
             );
             //]
         }

Modified: sandbox/assign_v2/libs/assign/v2/test/utility/convert.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/utility/convert.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/utility/convert.cpp 2011-02-28 19:28:21 EST (Mon, 28 Feb 2011)
@@ -63,9 +63,6 @@
                 typedef int T;
                 typedef std::vector<int> R; R r( 3 ); r[0] = 1; r[1] = 2; r[2] = 0;
                         
- // TODO figure out why
- // C(as2::converter( ar ) ); // Call of overloaded C() ambig
-
             {
                         typedef std::vector<T> C; f<C>( as2::converter( r ), r );
             }


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