Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70542 - in sandbox/assign_v2: boost/assign/v2/conversion boost/assign/v2/deque/cpp03 boost/assign/v2/detail/check/equal_container boost/assign/v2/detail/traits/ptr_container boost/assign/v2/detail/traits/value_container boost/assign/v2/interpreter boost/assign/v2/option boost/assign/v2/pipe boost/assign/v2/ref/aux_/list/holder libs/assign/v2/test libs/assign/v2/test/detail libs/assign/v2/test/ref libs/assign/v2/test/ref/aux_
From: erwann.rogard_at_[hidden]
Date: 2011-03-25 12:42:01


Author: e_r
Date: 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
New Revision: 70542
URL: http://svn.boost.org/trac/boost/changeset/70542

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/boost/assign/v2/conversion/predicate.hpp | 8 +++---
   sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp | 4 +-
   sandbox/assign_v2/boost/assign/v2/detail/check/equal_container/deduce.hpp | 8 +++---
   sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/meta.hpp | 4 +-
   sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/to_value_container.hpp | 4 +-
   sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/category.hpp | 4 +-
   sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_push.hpp | 4 +-
   sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_value_type.hpp | 4 +-
   sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp | 2
   sandbox/assign_v2/boost/assign/v2/interpreter/data.hpp | 10 ++++----
   sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp | 9 +++----
   sandbox/assign_v2/boost/assign/v2/option/key.hpp | 33 ++++++++++++++++++++++++-------
   sandbox/assign_v2/boost/assign/v2/pipe/option_traits.hpp | 1
   sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/head.hpp | 2
   sandbox/assign_v2/libs/assign/v2/test/chain.cpp | 1
   sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp | 2
   sandbox/assign_v2/libs/assign/v2/test/ref/array.cpp | 13 ++++++++++++
   sandbox/assign_v2/libs/assign/v2/test/ref/aux_/list.cpp | 16 ++++++++------
   sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp | 41 ++++++++++++++++++++++++++-------------
   19 files changed, 108 insertions(+), 62 deletions(-)

Modified: sandbox/assign_v2/boost/assign/v2/conversion/predicate.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/predicate.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/predicate.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -21,16 +21,16 @@
 
     template<typename C>
     struct is_array : ::boost::mpl::apply1<
- ptr_container_aux::through_value_container<
- value_container_aux::is_array
+ container_aux::through_value_container<
+ container_aux::is_array
>,
         C
>{};
 
     template<typename C>
     struct has_push : ::boost::mpl::apply1<
- ptr_container_aux::through_value_container<
- value_container_aux::has_push_deduced_value
+ container_aux::through_value_container<
+ container_aux::has_push_deduced_value
>,
         C
>{};

Modified: sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/deque/cpp03/csv_deque.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -24,8 +24,8 @@
     typename result_of::csv_deque<T>::type\
     csv_deque( BOOST_PP_ENUM_PARAMS(N, T const & _) )\
     {\
- typedef typename boost::decay<T>::type decay_;\
- return deque<decay_>( v2::_nil ) BOOST_PP_REPEAT(N, BOOST_ASSIGN_V2_MACRO1, ~ );\
+ typedef typename result_of::csv_deque<T>::type result_;\
+ return result_() BOOST_PP_REPEAT(N, BOOST_ASSIGN_V2_MACRO1, ~ );\
     }\
 /**/
 BOOST_PP_REPEAT_FROM_TO(

Modified: sandbox/assign_v2/boost/assign/v2/detail/check/equal_container/deduce.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/check/equal_container/deduce.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/check/equal_container/deduce.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -29,28 +29,28 @@
     struct case_<switch_tag::check_container, 0> :
         switch_aux::helper<
             check_aux::fifo,
- value_container_aux::is_fifo
+ container_aux::is_fifo
>{};
 
     template<>
     struct case_<switch_tag::check_container, 1> :
         switch_aux::helper<
             check_aux::lifo,
- value_container_aux::is_lifo
+ container_aux::is_lifo
>{};
 
     template<>
     struct case_<switch_tag::check_container, 2> :
         switch_aux::helper<
             check_aux::sorted,
- value_container_aux::is_sorted
+ container_aux::is_sorted
>{};
 
     template<>
     struct case_<switch_tag::check_container, 3> :
         switch_aux::helper<
             check_aux::array,
- value_container_aux::is_array
+ container_aux::is_array
>{};
 
     template<>

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/meta.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/meta.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/meta.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -16,7 +16,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-namespace ptr_container_aux{
+namespace container_aux{
 
 
     template<typename PtrC>
@@ -35,7 +35,7 @@
>{};
     };
 
-}// ptr_container_aux
+}// container_aux
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/to_value_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/to_value_container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/ptr_container/to_value_container.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -19,7 +19,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-namespace ptr_container_aux{
+namespace container_aux{
 
     template<typename A, typename T> struct to_value_allocator_helper{};
 
@@ -207,7 +207,7 @@
 
     // TODO unordered
 
-}// ptr_container_aux
+}// container_aux
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/category.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/category.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/category.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -15,7 +15,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-namespace value_container_aux{
+namespace container_aux{
 
     // FIFO
     template<typename C> struct is_fifo : ::boost::mpl::false_{};
@@ -47,7 +47,7 @@
> : ::boost::mpl::true_{};
 
 
-}// value_container_aux
+}// container_aux
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_push.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_push.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_push.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -17,7 +17,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-namespace value_container_aux{
+namespace container_aux{
 
     template<typename C, typename T = typename C::value_type>
     struct has_push{
@@ -46,7 +46,7 @@
     template<typename C>
     struct has_push_deduced_value : has_push<C>{};
 
-}// value_container_aux
+}// container_aux
 }// v2
 }// assign
 }// boost

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_value_type.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_value_type.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/value_container/has_value_type.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -16,7 +16,7 @@
 namespace boost{
 namespace assign{
 namespace v2{
-namespace value_container_aux{
+namespace container_aux{
 
     template<typename T>
     struct has_value_type{
@@ -37,7 +37,7 @@
     };
 
 
-}// value_container_aux
+}// container_aux
 }// v2
 }// assign
 }// boost

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-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -233,7 +233,7 @@
 
         template<typename T>
         struct ptr_enabler : boost::enable_if<
- ptr_container_aux::is_ptr_container<C>
+ container_aux::is_ptr_container<C>
>{};
 
         template<typename T>

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-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -7,8 +7,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_INTERPRETER_FUN_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INTERPRETER_FUN_ER_2010_HPP
+#ifndef BOOST_ASSIGN_V2_INTERPRETER_DATA_ER_2010_HPP
+#define BOOST_ASSIGN_V2_INTERPRETER_DATA_ER_2010_HPP
 #include <boost/assign/v2/detail/traits/ptr_container/to_value_container.hpp>
 #include <boost/assign/v2/detail/traits/ptr_container/meta.hpp>
 #include <boost/assign/v2/detail/functor/constructor.hpp>
@@ -33,7 +33,7 @@
     struct deduce_ptr_generator/*<-*/
     {
         
- typedef typename v2::ptr_container_aux::to_value_container<
+ typedef typename v2::container_aux::to_value_container<
             PtrC
>::type cont_;
         typedef functor_aux::new_<
@@ -57,7 +57,7 @@
>
     struct deduce_data_generator/*<-*/
         : boost::mpl::eval_if<
- ptr_container_aux::is_ptr_container<C>,
+ container_aux::is_ptr_container<C>,
             deduce_ptr_generator<C>,
             deduce_value_generator<C>
>
@@ -69,4 +69,4 @@
 }// assign
 }// boost
 
-#endif // BOOST_ASSIGN_V2_INTERPRETER_FUN_ER_2010_HPP
+#endif // BOOST_ASSIGN_V2_INTERPRETER_DATA_ER_2010_HPP

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-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -71,7 +71,7 @@
     struct case_<switch_tag::deduce_put, CaseNumber> :\
         switch_aux::helper<\
             v2::modifier_tag::Tag,\
- ptr_container_aux::through_value_container<BooleanMetaF>::apply\
+ container_aux::through_value_container<BooleanMetaF>::apply\
>{};\
 }\
 /**/
@@ -82,7 +82,7 @@
 #error
 #else
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_ASSOCIATIVE(CaseNumber)\
-BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_CASE(insert, value_container_aux::is_sorted, CaseNumber)\
+BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_CASE(insert, container_aux::is_sorted, CaseNumber)\
 /**/
 #endif
 
@@ -90,7 +90,7 @@
 #error
 #else
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_ARRAY(CaseNumber)\
-BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_CASE(iterate<>, value_container_aux::is_array, CaseNumber)
+BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_CASE(iterate<>, container_aux::is_array, CaseNumber)
 /**/
 #endif
 
@@ -98,7 +98,7 @@
 #error
 #else
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_ADAPTER(CaseNumber)\
-BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_CASE(push, value_container_aux::has_push_deduced_value, CaseNumber)
+BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH_CASE(push, container_aux::has_push_deduced_value, CaseNumber)
 /**/
 #endif
 
@@ -125,7 +125,6 @@
 #define BOOST_ASSIGN_V2_OPTION_MODIFIER_SWITCH
 #endif
 
-
 /*->*/
 namespace interpreter_aux{
 

Modified: sandbox/assign_v2/boost/assign/v2/option/key.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/key.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/key.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -9,9 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_OPTION_KEY_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_KEY_ER_2010_HPP
+#include <boost/assign/v2/detail/traits/ptr_container/meta.hpp>
+#include <boost/assign/v2/detail/traits/value_container/category.hpp>
 #include <boost/assign/v2/interpreter/data.hpp>
 #include <boost/assign/v2/option/data.hpp>
 #include <boost/mpl/apply.hpp>
+#include <boost/utility/enable_if.hpp>
 
 namespace boost{
 namespace assign{
@@ -22,10 +25,12 @@
     template<typename C>
     struct container_key{ typedef typename C::key_type type; };
 
- template<typename /*<<Value or pointer-container>>*/C>
- struct /*<<Metafunction>>*/deduce_key_generator/*<-*/
+ template<
+ typename C // Value or pointer-container
+ >
+ struct deduce_key_generator/*<-*/
         : boost::mpl::eval_if<
- ptr_container_aux::is_ptr_container<C>,
+ container_aux::is_ptr_container<C>,
             deduce_ptr_generator<C, container_key>,
             deduce_value_generator<C, container_key>
>
@@ -37,16 +42,28 @@
 namespace result_of{
 
     template<typename C, typename D>
- struct option_key : ::boost::mpl::apply1<
- interpreter_aux::result_of::option_data_generator<D>,
- typename deduce_key_generator<C>::type
+ struct option_key : boost::lazy_enable_if<
+ ::boost::mpl::apply1<
+ container_aux::through_value_container<
+ container_aux::is_sorted
+ >,
+ C
+ >,
+ ::boost::mpl::apply1<
+ interpreter_aux::result_of::option_data_generator<D>,
+ typename deduce_key_generator<C>::type
+ >
>{};
 
 }//result_of
 
- template<typename /*<<Associative container>>*/C, typename F, typename Tag, typename D>
+ // Overrides data generator with a constructor for C::key_type
+ template<
+ typename C // Associative container
+ , typename F, typename Tag, typename D
+ >
     typename result_of::option_key<C, D>::type
- operator%/*<<Overrides data generator with a constructor for C::key_type>>*/(
+ operator%(
         interpreter_crtp<C, F, Tag, D> const& lhs,
         option_key rhs
     )/*<-*/

Modified: sandbox/assign_v2/boost/assign/v2/pipe/option_traits.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/pipe/option_traits.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/pipe/option_traits.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -17,6 +17,7 @@
 #include <boost/mpl/vector/vector0.hpp>
 
 namespace boost{
+ struct use_default;
 namespace assign{
 namespace v2{
 namespace interpreter_aux{

Modified: sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/head.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/head.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/aux_/list/holder/head.hpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -26,7 +26,7 @@
         typedef T head_value_type;
 
         explicit head_holder(T& t) : head_( &t ){}
-
+
         typedef T& result_of_head_type;
         result_of_head_type head()const{ return (*this->head_); }
 

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-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -10,6 +10,7 @@
 #include <iterator>
 #include <vector>
 #include <list>
+#include <string>
 #include <boost/next_prior.hpp>
 #include <boost/range/begin.hpp>
 #include <boost/range/end.hpp>

Modified: sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/detail/traits.cpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -23,7 +23,7 @@
     void test()
     {
         namespace as2 = boost::assign::v2;
- namespace ns = as2::value_container_aux;
+ namespace ns = as2::container_aux;
         {
             typedef std::queue<int> v_;
             BOOST_MPL_ASSERT(( ns::has_push<v_> ));

Modified: sandbox/assign_v2/libs/assign/v2/test/ref/array.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/array.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/array.cpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -29,6 +29,19 @@
         using namespace boost;
         namespace as2 = assign::v2;
         {
+ //[test_ref_array_temporaries
+ boost::array<int, 3> ar;
+ ar[0] = 72; ar[1] = 31; ar[2] = 48;
+
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal(
+ as2::ref::array( 72 )( 31 )( 48 ),
+ ar
+ )
+ )/*<<Temporaries destroyed past semicolon>>*/;
+ //]
+ }
+ {
             //[test_ref_array_read
             typedef int const T;
             T w = 11, x = 72, y = 31, z = 48;

Modified: sandbox/assign_v2/libs/assign/v2/test/ref/aux_/list.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/aux_/list.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/aux_/list.cpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -45,19 +45,21 @@
             typedef add_reference<t2_>::type r2_;
 
             t0_ a = 0;
-#define B 2
             t2_ c = "c";
 
             typedef as2::ref::nth_result_of::list<tag_> result_;
             typedef mpl::apply1<result_,
                 mpl::vector<r0_, r1_, r2_>
>::type ar_;
- ar_ ar = as2::ref::list<tag_>( as2::_nil )( a )( B )( c );
 
- BOOST_ASSIGN_V2_CHECK( &as2::ref::at<0>( ar ) == &a );
- BOOST_ASSIGN_V2_CHECK( as2::ref::at<1>( ar ) == B );
- BOOST_ASSIGN_V2_CHECK( str_( as2::ref::at<2>( ar ) ) == c );
-#undef B
+// Reminder : temporaries destroyed at the semi-colon
+// Implication : don't try to save the result.
+#define BOOST_ASSIGN_V2_macro as2::ref::list<tag_>( as2::_nil )( a )( 2 )( c )
+
+ BOOST_ASSIGN_V2_CHECK( &as2::ref::at<0>( BOOST_ASSIGN_V2_macro ) == &a );
+ BOOST_ASSIGN_V2_CHECK( as2::ref::at<1>( BOOST_ASSIGN_V2_macro ) == 2 );
+ BOOST_ASSIGN_V2_CHECK( str_( as2::ref::at<2>( BOOST_ASSIGN_V2_macro ) ) == c );
+#undef BOOST_ASSIGN_V2_macro
         }
         {
             typedef int t_; typedef add_reference<t_>::type r_;
@@ -78,7 +80,7 @@
             BOOST_ASSIGN_V2_CHECK( &arw[ 2 ].get() == &c );
         }
         {
- typedef as2::ref::alloc_tag::lazy_alloc tag_;
+ typedef as2::ref::alloc_tag::lazy_alloc tag_;
             typedef as2::ref::list_aux::void_ void_;
             typedef as2::ref::list_aux::nil nil_;
             typedef as2::ref::empty_list<tag_>::type empty_;

Modified: sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp 2011-03-25 12:41:57 EDT (Fri, 25 Mar 2011)
@@ -27,30 +27,43 @@
         using namespace boost;
         namespace as2 = assign::v2;
         {
+ //[test_ref_csv_array_temporaries
+ boost::array<int, 3> ar;
+ ar[0] = 72; ar[1] = 31; ar[2] = 48;
+
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal(
+ as2::ref::csv_array( 72, 31, 48 ),
+ ar
+ )
+ )/*<<Temporaries destroyed past semicolon>>*/;
+ //]
+ }
+ {
             //[test_ref_csv_array_read
             typedef int const T;
             T x = 72, y = 31, z = 48;
- typedef as2::ref::nth_result_of::csv_array<3, T>::type ar_;
- ar_ ar = as2::ref::csv_array( x, y, z );
- {
- T& a = ar[0]; T& b = ar[2];
+ as2::ref::nth_result_of::csv_array<3, T>::type ar
+ = as2::ref::csv_array( x, y, z );
+ /*<-*/{/*->*/
+ T& front = ar.front(); T& back = ar.back();
             
- BOOST_ASSIGN_V2_CHECK( &a == &x );
- BOOST_ASSIGN_V2_CHECK( &b == &z );
- }
+ BOOST_ASSIGN_V2_CHECK( &front == &x );
+ BOOST_ASSIGN_V2_CHECK( &back == &z );
+ /*<-*/}/*->*/
             //]
             {
- T& a = ar.front(); T& b = ar.back();
+ T& front = ar.front(); T& back = ar.back();
 
- BOOST_ASSIGN_V2_CHECK( &a == &x );
- BOOST_ASSIGN_V2_CHECK( &b == &z );
+ BOOST_ASSIGN_V2_CHECK( &front == &x );
+ BOOST_ASSIGN_V2_CHECK( &back == &z );
             }
             {
- T& a = (*begin( ar ) );
- T& b = *next(boost::begin( ar ), 2 );
+ T& front = ( *begin( ar ) );
+ T& back = *next( boost::begin( ar ), 2 );
 
- BOOST_ASSIGN_V2_CHECK( &a == &x );
- BOOST_ASSIGN_V2_CHECK( &b == &z );
+ BOOST_ASSIGN_V2_CHECK( &front == &x );
+ BOOST_ASSIGN_V2_CHECK( &back == &z );
             }
         }
         {


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