Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68082 - in sandbox/statistics/support/boost/assign/v2: . detail detail/keyword detail/traits/type put/deque put/generic put/modifier/ext put/pipe put/pipe/csv put/pipe/csv/cpp03 put/pipe/csv/cpp0x put/sub ref ref/array ref/detail/convert_traits ref/detail/unwrap ref/fusion ref/wrapper utility/chain utility/chain/checking utility/convert
From: erwann.rogard_at_[hidden]
Date: 2011-01-13 00:37:56


Author: e_r
Date: 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
New Revision: 68082
URL: http://svn.boost.org/trac/boost/changeset/68082

Log:
upd libs/assign/v2
Text files modified:
   sandbox/statistics/support/boost/assign/v2/detail/keyword.hpp | 1
   sandbox/statistics/support/boost/assign/v2/detail/keyword/unwrap.hpp | 29 -------
   sandbox/statistics/support/boost/assign/v2/detail/traits/type/meta_convert.hpp | 9 +
   sandbox/statistics/support/boost/assign/v2/put/deque/cont.hpp | 26 +++---
   sandbox/statistics/support/boost/assign/v2/put/generic/concept_sub.hpp | 2
   sandbox/statistics/support/boost/assign/v2/put/generic/crtp.hpp | 12 +-
   sandbox/statistics/support/boost/assign/v2/put/generic/new_fun.hpp | 2
   sandbox/statistics/support/boost/assign/v2/put/generic/new_modifier.hpp | 2
   sandbox/statistics/support/boost/assign/v2/put/modifier/ext/result_of_modulo.hpp | 2
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/forward.hpp | 102 --------------------------
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/forward.hpp | 104 ---------------------------
   sandbox/statistics/support/boost/assign/v2/put/pipe/csv/forward.hpp | 2
   sandbox/statistics/support/boost/assign/v2/put/pipe/range.hpp | 2
   sandbox/statistics/support/boost/assign/v2/put/sub/csv.hpp | 8 +-
   sandbox/statistics/support/boost/assign/v2/put/sub/functor.hpp | 4
   sandbox/statistics/support/boost/assign/v2/ref.hpp | 1
   sandbox/statistics/support/boost/assign/v2/ref/array/interface.hpp | 74 ++++++++-----------
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/add_const.hpp | 36 ---------
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/checking.hpp | 150 ---------------------------------------
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp | 71 ------------------
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/result.hpp | 99 --------------------------
   sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/twin_values.hpp | 44 -----------
   sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp | 125 ---------------------------------
   sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/range.hpp | 87 ----------------------
   sandbox/statistics/support/boost/assign/v2/ref/fusion/container.hpp | 2
   sandbox/statistics/support/boost/assign/v2/ref/fusion/head_holder.hpp | 2
   sandbox/statistics/support/boost/assign/v2/ref/fusion/link_holder.hpp | 2
   sandbox/statistics/support/boost/assign/v2/ref/wrapper.hpp | 1
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp | 63 ++++++++--------
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp | 14 +-
   sandbox/statistics/support/boost/assign/v2/utility/chain/adaptor.hpp | 2
   sandbox/statistics/support/boost/assign/v2/utility/chain/checking/twin_values.hpp | 109 +++++++++++++++-------------
   sandbox/statistics/support/boost/assign/v2/utility/chain/use_lvalue.hpp | 46 ++++--------
   sandbox/statistics/support/boost/assign/v2/utility/convert/converter.hpp | 2
   34 files changed, 197 insertions(+), 1040 deletions(-)

Modified: sandbox/statistics/support/boost/assign/v2/detail/keyword.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/detail/keyword.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/detail/keyword.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -11,6 +11,5 @@
 #define BOOST_ASSIGN_V2_DETAIL_KEYWORD_ER_2010_HPP
 
 #include <boost/assign/v2/detail/keyword/nil.hpp>
-#include <boost/assign/v2/detail/keyword/unwrap.hpp>
 
 #endif

Modified: sandbox/statistics/support/boost/assign/v2/detail/keyword/unwrap.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/detail/keyword/unwrap.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/detail/keyword/unwrap.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,28 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_DETAIL_KEYWORD_UNWRAP_ER_2010_HPP
-#define BOOST_ASSIGN_V2_DETAIL_KEYWORD_UNWRAP_ER_2010_HPP
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace keyword_aux{
-
- struct unwrap{};
-
-}// detail
-
- keyword_aux::unwrap const _unwrap = keyword_aux::unwrap();
-
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file

Modified: sandbox/statistics/support/boost/assign/v2/detail/traits/type/meta_convert.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/detail/traits/type/meta_convert.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/detail/traits/type/meta_convert.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -9,10 +9,12 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_TRAITS_TYPE_HAS_VALUE_TYPE_ER_2010_HPP
 #define BOOST_ASSIGN_V2_TRAITS_TYPE_HAS_VALUE_TYPE_ER_2010_HPP
-#include <boost/assign/v2/ref/detail/convert_traits/result.hpp>
+//#include <boost/assign/v2/ref/convert_traits/result.hpp>
+
+#include <boost/assign/v2/ref/convert_traits/reference.hpp>
 
 namespace boost{
-// struct boost::use_default;
+ struct boost::use_default;
 namespace assign{
 namespace v2{
 namespace type_traits{
@@ -21,7 +23,8 @@
     struct meta_convert{
 
         template<typename T1,typename T2>
- struct apply : ref::convert_traits::result<T1,T2>{};
+// struct apply : ref::convert_traits::result<T1, T2>{};
+ struct apply : ref::convert_traits::reference<T1, T2>{};
 
         };
 

Modified: sandbox/statistics/support/boost/assign/v2/put/deque/cont.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/deque/cont.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/deque/cont.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -103,46 +103,46 @@
         typedef typename impl_::difference_type difference_type;
 
         size_type size()const{
- return this->unwrap().size();
+ return this->get().size();
         }
         size_type max_size()const{
- return this->unwrap().max_size();
+ return this->get().max_size();
         }
         bool empty()const{
- return this->unwrap().empty();
+ return this->get().empty();
         }
         reference operator[](size_type n){
- return this->unwrap()[n];
+ return this->get()[n];
         }
         const_reference operator[](size_type n)const{
- return this->unwrap()[n];
+ return this->get()[n];
         }
         reference front(){
- return this->unwrap().front();
+ return this->get().front();
         }
         const_reference front()const{
- return this->unwrap().front();
+ return this->get().front();
         }
                 reference back(){
- return this->unwrap().back();
+ return this->get().back();
         }
         const_reference back()const{
- return this->unwrap().back();
+ return this->get().back();
         }
         void pop_front(){
- this->unwrap().pop_front();
+ this->get().pop_front();
         }
         void pop_back(){
- this->unwrap().pop_back();
+ this->get().pop_back();
         }
         void swap(cont& that){
- this->unwrap().swap( that.unwrap() );
+ this->get().swap( that.get() );
         }
 
         // Note : the modifiers such as push_back() are ommitted as they
         // accessible through the put interface.
 
- impl_& unwrap()const{ return this->impl; }
+ impl_& get()const{ return this->impl; }
         protected:
         mutable impl_ impl;
 

Modified: sandbox/statistics/support/boost/assign/v2/put/generic/concept_sub.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/generic/concept_sub.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/concept_sub.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -25,7 +25,7 @@
                 BOOST_CONCEPT_USAGE(Pre1)
         {
                         X x( v );
- V& ref = x.unwrap();
+ V& ref = x.get();
         }
         
         private:

Modified: sandbox/statistics/support/boost/assign/v2/put/generic/crtp.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/generic/crtp.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/crtp.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -147,7 +147,7 @@
 )
 #undef MACRO
 #endif
- V& unwrap()const{ return this->derived().unwrap(); }
+ V& get()const{ return this->derived().get(); }
 
                 struct result_of_modulo{
 
@@ -170,7 +170,7 @@
                 typedef typename caller_::type cons_;
                     typedef typename result_of_modulo::deduce::type result_;
                     return result_(
- this->derived().unwrap(),
+ this->derived().get(),
                      caller_::call()
                 );
         }
@@ -182,7 +182,7 @@
         {
                 typedef put_concept::ModifierImpl<modifier_, V, T*> concept_;
             BOOST_CONCEPT_ASSERT(( concept_ ));
- this->modifier.impl( this->derived().unwrap(), t );
+ this->modifier.impl( this->derived().get(), t );
             return this->derived();
         }
 
@@ -206,7 +206,7 @@
         {
                         check_modifier( t );
                         this->modifier.impl(
- this->derived().unwrap(),
+ this->derived().get(),
                 std::forward<T>( t )
             );
             return this->derived();
@@ -216,7 +216,7 @@
         result_type arg_deduct(T& t)const
         {
                         check_modifier( t );
- this->modifier.impl( this->derived().unwrap(), t );
+ this->modifier.impl( this->derived().get(), t );
             return this->derived();
         }
 
@@ -224,7 +224,7 @@
         result_type arg_deduct(T const& t)const
         {
                         check_modifier( t );
- this->modifier.impl( this->derived().unwrap(), t );
+ this->modifier.impl( this->derived().get(), t );
             return this->derived();
         }
 

Modified: sandbox/statistics/support/boost/assign/v2/put/generic/new_fun.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/generic/new_fun.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/new_fun.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -40,7 +40,7 @@
                     result_of_modulo::new_fun<T>,
                 F1
>::type result_;
- return result_( t.unwrap(), h.value, t.modifier );
+ return result_( t.get(), h.value, t.modifier );
     }
 
         struct kwd_fun{

Modified: sandbox/statistics/support/boost/assign/v2/put/generic/new_modifier.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/generic/new_modifier.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/generic/new_modifier.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -55,7 +55,7 @@
                 NewTag
>::type result_;
         typedef put_aux::modifier<NewTag> modifier_;
- return result_( t.unwrap(), t.fun, modifier_( h.modifier_tag ) );
+ return result_( t.get(), t.fun, modifier_( h.modifier_tag ) );
     }
 
 }// put_aux

Modified: sandbox/statistics/support/boost/assign/v2/put/modifier/ext/result_of_modulo.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/modifier/ext/result_of_modulo.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/modifier/ext/result_of_modulo.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -78,7 +78,7 @@
                 typedef put_concept::Parameter<m_,P> concept_;
                 BOOST_CONCEPT_ASSERT(( concept_ ));
                 return call(
- t.unwrap(),
+ t.get(),
                     make_fun( t, is_same_fun() ),
                     m_( p.get() )
                 );

Modified: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/forward.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/forward.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp03/forward.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,101 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP03_FORWARD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP03_FORWARD_ER_2010_HPP
-#include <boost/preprocessor/repetition.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/assign/v2/ref/list_tuple.hpp>
-#include <boost/tuples/tuple.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace put_pipe_aux{
-
- // --- Tuple --- //
-
-#define MACRO1(z, I, data) ::boost::get<I>( data ).unwrap()
-#define MACRO(z, N, data)\
- template<typename F, BOOST_PP_ENUM_PARAMS(N, typename T)>\
- void forward(\
- F& f,\
- ::boost::tuple<BOOST_PP_ENUM_PARAMS(N, T)> const& t\
- )\
- {\
- f( BOOST_PP_ENUM(N, MACRO1, t) );\
- }\
-/**/
-BOOST_PP_REPEAT(
- BOOST_PP_INC(BOOST_PP_ASSIGN_V2_LIMIT_ARITY),
- MACRO,
- ~
-)
-
- // --- List --- //
-
- template<
- typename F,
- int N, typename L, params(typename T)
- >
- void forward(
- F& f ,
- boost::mpl::int_<N>,
- ref::list_tuple_aux::container<N, L, params(T)> const& list
- )
- {}
-
- template<
- typename F,
- int I, int N, typename L, params(typename T)
- >
- void forward(
- F& f ,
- boost::mpl::int_<I>,
- ref::list_tuple_aux::container<N, L, params(T)> const& list
- )
- {
- {
- typedef boost::mpl::int_<I> int_;
- forward( f, list.get( int_() ) );
- }
- {
- typedef boost::mpl::int_<I+1> next_;
- forward( f, next_(), list );
- }
- }
-
- // ------------ //
-
- template<typename F, typename L>
- void forward(
- F& f ,
- ref::list_tuple_aux::container<
- 0,
- L,
- params(list_tuple_aux::na_)
- > const& list
- ){}
-
- template<typename F, int N, typename L, params(T)>
- void forward(
- F& f,
- ref::list_tuple_aux::container<N, L, params(T)> const& list
- )
- {
- typedef boost::mpl::int_<0> int_;
- forward(f, int_(), list);
- }
-
-}// put_pipe_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_HPP
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/forward.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/forward.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/cpp0x/forward.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,103 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP0X_FORWARD_ER_2010_HPP
-#define BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_CPP0X_FORWARD_ER_2010_HPP
-#include <boost/mpl/size.hpp>
-#include <boost/assign/v2/ref/tuple/cpp0x.hpp>
-#include <boost/assign/v2/ref/list_tuple.hpp>
-#include <boost/assign/v2/temporary/variadic_args_to_indices.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace put_pipe_aux{
-
- // --- Tuple --- //
-
- template<typename F, typename T, typename I, I ...Values>
- void forward(
- F& f,
- T const& t,
- ::boost::mpl::er2010::indices<I, Values...>
- )
- {
- f( get<Values>( t )... );
- }
-
- template<typename F, typename ...Args>
- void forward(
- F& f,
- ref::tuple_aux::container<Args...> const& t
- )
- {
- typedef typename ::boost::mpl::er2010::args_to_indices<
- int,
- Args...
- >::type indices_;
- forward( f, t, indices_() );
- }
-
- // --- List --- //
-
- template<
- typename F,
- int N, typename L, typename...Args
- >
- void forward(
- F& f ,
- boost::mpl::int_<N>,
- ref::list_tuple_aux::container<N, L, Args...> const& list
- )
- {}
-
- template<
- typename F,
- int I, int N, typename L, typename...Args
- >
- void forward(
- F& f ,
- boost::mpl::int_<I>,
- ref::list_tuple_aux::container<N, L, Args...> const& list
- )
- {
- {
- typedef boost::mpl::int_<I> int_;
- forward( f, list.get( int_() ) );
- }
- {
- typedef boost::mpl::int_<I+1> next_;
- forward( f, next_(), list );
- }
- }
-
- // ------------ //
-
- template<typename F, typename L>
- void forward(
- F& f ,
- ref::list_tuple_aux::container<0, L> const& list
- ){}
-
- template<typename F, int N, typename L, typename...Args>
- void forward(
- F& f,
- ref::list_tuple_aux::container<N, L, Args...> const& list
- )
- {
- typedef boost::mpl::int_<0> int_;
- forward(f, int_(), list);
- }
-
-}// put_pipe_aux
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_PUT_PIPE_FUNCTOR_FORWARD_ER_2010_HPP
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/put/pipe/csv/forward.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/pipe/csv/forward.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/csv/forward.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -35,7 +35,7 @@
         C const& c
     )
     {
- f( c[ I ] );
+ f( c[ I ].get() );
         csv_forward<N, I+1>(f, c);
     }
 

Modified: sandbox/statistics/support/boost/assign/v2/put/pipe/range.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/pipe/range.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe/range.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -28,7 +28,7 @@
 
             helper1(From const& from) : super_t(from){}
 
- From const& from()const{ return this->unwrap(); }
+ From const& from()const{ return this->get(); }
 
         private:
         helper1();

Modified: sandbox/statistics/support/boost/assign/v2/put/sub/csv.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/sub/csv.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/sub/csv.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -67,7 +67,7 @@
         operator()(Args&&...args)
         {
             typedef typename result_of::put<V>::type result_;
- result_ result = put( this->unwrap() );
+ result_ result = put( this->get() );
             this->impl(
                 result,
                 args...
@@ -81,7 +81,7 @@
     typename result_of::put<V>::type\
     operator()( BOOST_PP_ENUM_PARAMS(N, value_type const & _) )\
     {\
- return put( this->unwrap() ) BOOST_PP_REPEAT(N, MACRO1, ~ );\
+ return put( this->get() ) BOOST_PP_REPEAT(N, MACRO1, ~ );\
     }\
 /**/
 BOOST_PP_REPEAT_FROM_TO(
@@ -93,8 +93,8 @@
 #undef MACRO1
 #undef MACRO2
 #endif
- V& unwrap()const{
- return static_cast<super1_t const&>(*this).unwrap();
+ V& get()const{
+ return static_cast<super1_t const&>(*this).get();
         }
 
     };

Modified: sandbox/statistics/support/boost/assign/v2/put/sub/functor.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/put/sub/functor.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/put/sub/functor.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -93,8 +93,8 @@
                 // when Tag or F is modified.
                 }
 
- V& unwrap()const{
- return static_cast<super1_t const&>(*this).unwrap();
+ V& get()const{
+ return static_cast<super1_t const&>(*this).get();
         }
 
     };

Modified: sandbox/statistics/support/boost/assign/v2/ref.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -11,5 +11,6 @@
 #define BOOST_ASSIGN_V2_REF_ER_2010_HPP
 
 #include <boost/assign/v2/ref/wrapper.hpp>
+#include <boost/assign/v2/ref/array.hpp>
 
 #endif

Modified: sandbox/statistics/support/boost/assign/v2/ref/array/interface.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/array/interface.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/array/interface.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -26,8 +26,7 @@
 
 #include <boost/assign/v2/ref/wrapper/framework.hpp>
 #include <boost/assign/v2/ref/wrapper/crtp.hpp>
-#include <boost/assign/v2/ref/detail/unwrap/range.hpp>
-/* #include <boost/assign/v2/detail/relational_op.hpp> */
+#include <boost/assign/v2/ref/wrapper/get.hpp>
 
 namespace boost{
 namespace assign{
@@ -42,17 +41,19 @@
         typedef impl_ const cimpl_;
 
                 typedef typename Impl::value_type wrapper_;
-
- typedef typename ref::result_of::unwrap_range<impl_>::type range_;
- typedef typename ref::result_of::unwrap_range<cimpl_>::type crange_;
- typedef typename boost::unwrap_reference<wrapper_>::type value_type;
- typedef typename boost::add_reference<value_type>::type reference;
- typedef typename boost::call_traits<
- reference>::const_reference const_reference;
+ typedef typename boost::unwrap_reference<wrapper_>::type inner_type;
+ typedef impl_ range_;
+ typedef cimpl_ crange_;
         typedef typename boost::range_iterator<range_>::type iterator;
         typedef typename boost::range_iterator<crange_>::type const_iterator;
+
+ typedef typename boost::range_value<range_>::type value_type;
+ typedef typename boost::range_reference<range_>::type reference;
+ typedef typename boost::range_reference<crange_>::type const_reference;
+
+ typedef typename ref::result_of::get<wrapper_>::type result_of_get_;
+ typedef typename boost::call_traits<inner_type>::param_type param_type;
 
- // wrappers
         #ifndef BOOST_MSVC
                     typedef typename boost::range_size<impl_>::type size_type;
         #endif
@@ -65,11 +66,6 @@
 
     template<typename Impl, typename D>
     class interface
- /*:
- public relational_op_aux::crtp<
- interface<Impl, D>
- >
- */
     {
 
         typedef interface_traits<Impl> traits_;
@@ -77,9 +73,13 @@
         typedef typename traits_::impl_ impl_;
         typedef typename traits_::cimpl_ cimpl_;
         typedef interface<Impl, D> this_;
+ typedef typename traits_::result_of_get_ result_of_get_;
+ typedef typename traits_::param_type param_type;
 
         public:
+
         typedef wrapper_ wrapper_type;
+ typedef typename traits_::inner_type inner_type;
         typedef typename traits_::value_type value_type;
         typedef typename traits_::iterator iterator;
         typedef typename traits_::const_iterator const_iterator;
@@ -87,7 +87,6 @@
         typedef typename traits_::difference_type difference_type;
         typedef typename traits_::reference reference;
         typedef typename traits_::const_reference const_reference;
- typedef typename boost::call_traits<value_type>::param_type param_type;
 
         BOOST_STATIC_CONSTANT(size_type, static_size = Impl::static_size);
 
@@ -117,35 +116,35 @@
                 return this->wrappers().empty();
         }
 
- void rebind(size_type i, reference t)
+ void rebind(size_type i, result_of_get_ t)
         {
                 return (this->wrappers())[i].rebind( t );
         }
 
         reference operator[](size_type i)
         {
- return (this->wrappers())[i].unwrap();
+ return this->elem_impl( this->wrappers()[i] );
         }
         const_reference operator[](size_type i)const
         {
- return (this->wrappers())[i].unwrap();
+ return this->elem_impl( this->wrappers()[i] );
         }
 
         reference front()
         {
- return (this->wrappers()).front().unwrap();
+ return this->elem_impl( this->wrappers().front() );
         }
         const_reference front() const
         {
- return (this->wrappers()).front().unwrap();
+ return this->elem_impl( this->wrappers().front() );
         }
         reference back()
         {
- return (this->wrappers()).back().unwrap();
+ return this->elem_impl( this->wrappers().back() );
         }
         const_reference back() const
         {
- return (this->wrappers()).back().unwrap();
+ return this->elem_impl( this->wrappers().back() );
         }
 
         void assign(param_type val)
@@ -154,20 +153,6 @@
                 this->assign_impl( val, int_() );
         }
 
-/*
- // Relational op
- template<typename R>
- bool equal_to(const R& r)const{
- return ::boost::iterator_range_detail::equal(
- (*this), r );
- }
-
- template<typename R>
- bool less_than(const R& r)const{
- return ::boost::iterator_range_detail::less_than(
- (*this), r );
- }
-*/
                 protected:
 
         void assign_impl(param_type val, boost::mpl::int_<static_size>)
@@ -183,16 +168,19 @@
             this->assign_impl( val, next_() );
         }
 
- public:
-
- typename traits_::range_ unwrap()
+ template<typename W>
+ reference elem_impl(W& w)
         {
- return ref::unwrap_range( this->wrappers() );
+ return w; // w.get()
         }
- typename traits_::crange_ unwrap()const{
- return ref::unwrap_range( this->wrappers() );
+ template<typename W>
+ const_reference elem_impl(W & w)const
+ {
+ return w; // w.get()
         }
 
+ public:
+
         impl_& wrappers(){
             return static_cast<D&>(*this).impl();
         }

Modified: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/add_const.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/add_const.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/add_const.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,35 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_ADD_CONST_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_ADD_CONST_ER_2010_HPP
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/add_const.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace convert_traits{
-
- template<typename V, bool or_const>
- struct add_const : boost::mpl::eval_if_c<
- or_const,
- boost::add_const<V>,
- boost::mpl::identity<V>
- >{};
-
-}// convert_traits
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/checking.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/checking.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/checking.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,149 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_CHECKING_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_CHECKING_ER_2010_HPP
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/config.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/promote.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/assign/v2/ref/detail/convert_traits/result.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace convert_traits{
-namespace checking{
-
- template<typename T1,typename T2,typename T3>
- struct tester{
-
- typedef typename convert_traits::result<T1,T2>::type result_;
-
- static void test()
- {
- typedef boost::is_same<result_,T3> pred_;
- BOOST_STATIC_ASSERT( pred_::value );
- }
-
- };
-
-namespace twin_values{
-
- template<typename T>
- void do_check()
- {
-
- tester<const T &, const T &, const T &>::test();
- tester<const T &, T &, const T &>::test();
- tester< T &, const T &, const T &>::test();
- tester< T &, T &, T &>::test();
-
- tester<const T &, const T , const T >::test();
- tester<const T &, T , const T >::test();
- tester< T &, const T , const T >::test();
- tester< T &, T , T >::test();
-
- tester<const T , const T &, const T >::test();
- tester<const T , T &, const T >::test();
- tester< T , const T &, const T >::test();
- tester< T , T &, T >::test();
-
- tester<const T , const T , const T >::test();
- tester<const T , T , const T >::test();
- tester< T , const T , const T >::test();
- tester< T , T , T >::test();
-
- };
-
-}// twin_values
-namespace distinct_values{
-namespace arithmetic{
-
- template<typename T1,typename T2,typename T3>
- void do_check_impl(const T1&, const T2& ,const T3&)
- {
-
- // Disable for Ubuntu 9.1 - GCC 4.4 (see workaround below).
- // typedef typename boost::mpl::not_<
- // boost::is_same<T1,T2>
- // >::type not_same_;
- // BOOST_STATIC_ASSERT(not_same_::value);
-
- tester<const T1&, const T2&, const T3 >::test();
- tester<const T1&, T2&, const T3 >::test();
- tester< T1&, const T2&, const T3 >::test();
- tester< T1&, T2&, T3 >::test();
-
- tester<const T1&, const T2 , const T3 >::test();
- tester<const T1&, T2 , const T3 >::test();
- tester< T1&, const T2 , const T3 >::test();
- tester< T1&, T2 , T3 >::test();
-
- tester<const T1 , const T2&, const T3 >::test();
- tester<const T1 , T2&, const T3 >::test();
- tester< T1 , const T2&, const T3 >::test();
- tester< T1 , T2&, T3 >::test();
-
- tester<const T1 , const T2 , const T3 >::test();
- tester<const T1 , T2 , const T3 >::test();
- tester< T1 , const T2 , const T3 >::test();
- tester< T1 , T2 , T3 >::test();
-
- };
-
-
-#define m(T1, T2, T3) \
- template<typename T> \
- void do_check( \
- typename boost::enable_if< \
- boost::is_same<T,T1> \
- >::type* = 0 \
- ) \
- { \
- distinct_values::arithmetic::do_check_impl( T1(), T2(), T3() ); \
- } \
-/**/
-
-// Works for Max OSX 10.6 GCC 4.2 but not Ubuntu 9.1 GCC 4.4
-// m(short , long, int)
-// m(int , long, long)
-// m(float , double, double)
-// typedef long double long_double_;
-// m(double , long_double_, long double)
-
-namespace workaround{
- typedef boost::numeric::conversion_traits<short, int>::supertype a_;
- typedef boost::numeric::conversion_traits<int, long>::supertype b_;
- typedef boost::numeric::conversion_traits<float, double>::supertype c_;
- typedef boost::numeric::conversion_traits<
- double,long double>::supertype d_;
-}// workaround
-
-m(short , int, workaround::a_)
-m(int , long, workaround::b_)
-m(float , double, workaround::c_)
-typedef long double long_double_;
-m(double , long_double_, workaround::d_)
-
-#undef m
-}// arithmetic
-}// distinct_values
-}// checking
-}// convert_traits
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,70 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_DISTINCT_VALUES_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_DISTINCT_VALUES_ER_2010_HPP
-#include <boost/numeric/conversion/conversion_traits.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/assign/v2/ref/detail/convert_traits/add_const.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace convert_traits{
-namespace distinct_values{
-
- template<typename V1,typename V2>
- struct value{
-
- struct arithmetic
- {
- typedef typename boost::numeric::conversion_traits<
- V1,
- V2
- >::supertype type;
-
- };
-
- struct non_arithmetic : boost::mpl::eval_if<
- boost::is_convertible<V1,V2>,
- boost::mpl::identity<V2>,
- boost::mpl::identity<V1>
- >{};
-
- typedef boost::is_arithmetic<V1> is_ari1_;
- typedef boost::is_arithmetic<V2> is_ari2_;
- typedef boost::mpl::and_<is_ari1_,is_ari2_> is_ari_;
- typedef typename boost::mpl::eval_if<
- is_ari_,
- arithmetic,
- non_arithmetic
- >::type type;
-
- }; // value
-
- // There can be no reference if V1 != V2.
- template<typename V1,typename V2, bool or_const, bool and_ref>
- struct reference : convert_traits::add_const<
- typename distinct_values::value<V1,V2>::type,
- or_const
- >{};
-
-}// distinct_values
-}// convert_traits
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/result.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/result.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/result.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,98 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_RESULT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_RESULT_ER_2010_HPP
-#include <boost/config.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/assign/v2/ref/detail/convert_traits/twin_values.hpp>
-#include <boost/assign/v2/ref/detail/convert_traits/distinct_values.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace convert_traits{
-
- template<typename T1,typename T2>
- struct result
- {
-
- template<typename T>
- struct traits{
-
- typedef typename boost::is_reference<T>::type is_ref_;
- typedef typename boost::remove_reference<T>::type const_;
- typedef typename boost::is_const<const_>::type is_const_;
- typedef typename boost::remove_const<const_>::type val_;
-
- };
-
- typedef traits<T1> traits1_;
- typedef traits<T2> traits2_;
-
- typedef typename traits1_::val_ val1_;
- typedef typename traits2_::val_ val2_;
-
- typedef boost::is_same<val1_,val2_> same_val_;
-
- typedef typename boost::mpl::and_<
- typename traits1_::is_ref_,
- typename traits2_::is_ref_
- >::type and_ref_;
-
- typedef typename boost::mpl::or_<
- typename traits1_::is_const_,
- typename traits2_::is_const_
- >::type or_const_;
-
- typedef typename boost::mpl::eval_if<
- same_val_,
- twin_values::reference<
- val1_,
- or_const_::value,
- and_ref_::value
- >,
- distinct_values::reference<
- val1_,
- val2_,
- or_const_::value,
- and_ref_::value
- >
- >::type type;
-
- typedef boost::mpl::and_<
- boost::is_convertible<T1,type>,
- boost::is_convertible<T2,type>
- > is_valid_type;
-
- BOOST_STATIC_CONSTANT(bool, is_valid = is_valid_type::value);
-
- static void test()
- {
- BOOST_STATIC_ASSERT( is_valid );
- }
-
- };
-
-}// convert_traits
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/twin_values.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/twin_values.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/convert_traits/twin_values.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,43 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_TWIN_VALUES_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_CONVERT_TRAITS_TWIN_VALUES_ER_2010_HPP
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/assign/v2/ref/detail/convert_traits/add_const.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace convert_traits{
-namespace twin_values{
-
- template<typename V, bool or_const, bool and_ref>
- struct reference
- {
- typedef typename convert_traits::add_const<V,or_const>::type c_;
- typedef typename boost::mpl::eval_if_c<
- and_ref,
- boost::add_reference<c_>,
- boost::mpl::identity<c_>
- >::type type;
- };
-
-}// twin_values
-}// convert_traits
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
-
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,124 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_WRAPPER_UNWRAP_ITERATOR_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_WRAPPER_UNWRAP_ITERATOR_ER_2010_HPP
-#include <boost/range/reference.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/ref.hpp> // is_reference_wrapper<>
-#include <boost/assign/v2/ref/detail/unwrap/iterator.hpp>
-
-// Calling
-// *unwrap_iterator( it );
-// is equivalent to
-// (*it).unwrap();
-// if *it is a reference wrapper, otherwise
-// (*it);
-// Note this is necessary for chaining, at least.
-
-#include <boost/type_traits/decay.hpp>
-
-namespace boost{
- struct use_default;
-namespace assign{
-namespace v2{
-namespace ref{
-namespace unwrap_aux{
-
- template<typename I,
- typename R = typename boost::iterator_reference<I>::type,
- typename V = typename boost::remove_reference<R>::type
- > struct iterator;
-
- template<
- typename I, typename R, typename V,
- bool is_rw = boost::is_reference_wrapper<V>::value
- >
- struct iterator_traits{
-
- typedef R reference;
- typedef V value_type;
-
- typedef unwrap_aux::iterator<I, R, V> derived_;
- typedef boost::iterator_adaptor<
- derived_ // Derived
- ,I // Base
- ,value_type // Value
- ,use_default // CategoryOrTraversal
- ,reference // Reference
- ,use_default // Difference
- > adaptor_;
-
- };
-
- template<typename I, typename R, typename W>
- struct iterator_traits<I, R, W, true> : unwrap_aux::iterator_traits<
- I,
- typename boost::add_reference<
- typename boost::unwrap_reference<W>::type
- >::type,
- //W,
- typename boost::decay<typename boost::unwrap_reference<W>::type>::type,
- false
- >
- {
- typedef typename boost::unwrap_reference<W>::type inner_value_type;
- // Case inner_value_type == T[] calls for decay<>
-
- };
-
- template<typename I, typename R, typename V>
- struct iterator : unwrap_aux::iterator_traits<I, R, V>::adaptor_
- {
- typedef typename unwrap_aux::iterator_traits<I, R, V>::adaptor_ super_t;
-
- iterator(){}
- iterator(I base) : super_t(base)
- {
- typedef typename boost::iterator_reference<I>::type ref_;
- typedef typename
- boost::is_convertible<ref_, R>::type is_convertible_;
- BOOST_MPL_ASSERT(( is_convertible_ ));
- }
- };
-
- template<typename It>
- struct is_unwrapped_iterator : boost::mpl::false_{};
-
- template<typename I, typename R, typename V>
- struct is_unwrapped_iterator< unwrap_aux::iterator<I, R, V> >
- : boost::mpl::true_{};
-
-}// unwrap_aux
-namespace result_of{
-
- template<typename I>
- struct unwrap_iterator
- {
- typedef unwrap_aux::iterator<I> type;
- };
-
-}// result_of
-
- template<typename I>
- typename result_of::unwrap_iterator<I>::type
- unwrap_iterator(const I& base)
- {
- typedef typename result_of::unwrap_iterator<I>::type result_;
- return result_( base );
- }
-
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
-
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/range.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/range.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/range.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -1,86 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_WRAPPER_UNWRAP_RANGE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_WRAPPER_UNWRAP_RANGE_ER_2010_HPP
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/assign/v2/ref/detail/unwrap/iterator.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace ref{
-namespace unwrap_aux{
-
- template<typename R>
- struct is_unwrapped_range : unwrap_aux::is_unwrapped_iterator<
- typename boost::range_iterator<R>::type
- >{};
-
- template<typename R, bool = unwrap_aux::is_unwrapped_range<R>::value>
- struct caller
- {
- typedef typename boost::range_iterator<R>::type base_it_;
- typedef typename result_of::unwrap_iterator<base_it_>::type it_;
- typedef boost::iterator_range<it_> type;
-
- static type call( R& r)
- {
- return type(
- ref::unwrap_iterator( boost::begin( r ) ),
- ref::unwrap_iterator( boost::end( r ) )
- );
- }
- };
-
- // No need to unwrap twice
- template<typename R>
- struct caller<R, true>
- {
- typedef R type; // don't change this to R&
- static type call( R& r){ return r; }
- };
-
-}// unwrap_aux
-
- template<typename R>
- struct is_unwrapped_range : unwrap_aux::is_unwrapped_range<R>{};
-
-namespace result_of{
-
- template<typename R>
- struct unwrap_range : unwrap_aux::caller<R>{};
-
-}// result_of
-
- template<typename R>
- typename result_of::unwrap_range<R>::type
- unwrap_range( R& r)
- {
- typedef result_of::unwrap_range<R> result_;
- return result_::call( r );
- }
-
- template<typename R>
- typename result_of::unwrap_range<R const>::type
- unwrap_range( R const& r)
- {
- typedef result_of::unwrap_range<R const> result_;
- return result_::call( r );
- }
-
-}// ref
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file

Modified: sandbox/statistics/support/boost/assign/v2/ref/fusion/container.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/fusion/container.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/container.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -136,7 +136,7 @@
>::type
         static_lookup(boost::mpl::int_<I> same_index)const
         {
- return this->head.unwrap();
+ return this->head.get();
         }
 
         template<int I>

Modified: sandbox/statistics/support/boost/assign/v2/ref/fusion/head_holder.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/fusion/head_holder.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/head_holder.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -36,7 +36,7 @@
         
             T& back()const
         {
- return this->head.unwrap();
+ return this->head.get();
         }
         
     };

Modified: sandbox/statistics/support/boost/assign/v2/ref/fusion/link_holder.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/fusion/link_holder.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/fusion/link_holder.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -39,7 +39,7 @@
         typedef typename wrapper_::unwrap_type link_type;
         link_type link()const
         {
- return this->value.unwrap();
+ return this->value.get();
         }
 
         protected:

Modified: sandbox/statistics/support/boost/assign/v2/ref/wrapper.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/wrapper.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -12,5 +12,6 @@
 
 #include <boost/assign/v2/ref/wrapper/copy.hpp>
 #include <boost/assign/v2/ref/wrapper/cpp0x.hpp>
+#include <boost/assign/v2/ref/wrapper/get.hpp>
 
 #endif

Modified: sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -19,65 +19,66 @@
 #include <boost/assign/v2/ref/wrapper/crtp.hpp>
 
 namespace boost{
-namespace assign{
+namespace assign{
 namespace v2{
 namespace ref{
 namespace assign_tag{ struct copy{}; }
 namespace assign_copy{ typedef assign_tag::copy assign_tag_; }
 
     template< class T >
- struct wrapper<ref::assign_tag::copy, T>
- :
+ struct wrapper<ref::assign_tag::copy, T>
+ :
             public ref::wrapper_crtp< wrapper<ref::assign_tag::copy, T>, T>
     {
- typedef T type;
- BOOST_STATIC_CONSTANT(
- bool,
- is_const = boost::is_const<T>::value
- );
-
- wrapper(){}
-
- explicit wrapper( T& r ) : ref_(&r)
- { }
-
- void rebind(T& r )
- {
- this->ref_ = &r;
- }
-
+ typedef T type;
+ BOOST_STATIC_CONSTANT(
+ bool,
+ is_const = boost::is_const<T>::value
+ );
+
+ wrapper(){}
+
+ explicit wrapper( T& r ) : ref_(&r)
+ { }
+
+ void rebind(T& r )
+ {
+ this->ref_ = &r;
+ }
+
+ // TODO a) crtp b) reference() or get()
         typedef T& unwrap_type;
- T& unwrap() const
- {
- return *this->ref_;
- }
+ T& get() const
+ {
+ return *this->ref_;
+ }
 
- T* get_pointer() const { return this->ref_; }
+ T* get_pointer() const { return this->ref_; }
 
- using wrapper_crtp<wrapper,T>::operator=;
+ using wrapper_crtp<wrapper,T>::operator=;
 
         void assign(typename boost::call_traits<T>::param_type r )
         {
- this->unwrap() = r;
+ this->get() = r;
         }
 
         protected:
- friend class wrapper_crtp<wrapper, T>;
+ friend class wrapper_crtp<wrapper, T>;
 
- T* ref_;
+ T* ref_;
 
         typedef ref::assign_tag::copy assign_tag;
 
         void swap( wrapper& r )
         {
- std::swap( this->unwrap(), r.unwrap() );
+ std::swap( this->get(), r.get() );
         }
 
     };
-
+
     template<typename T>
     struct copy_wrapper{ typedef ref::wrapper<assign_tag::copy,T> type; };
-
+
 }// ref
 }// v2
 }// assign

Modified: sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -65,32 +65,32 @@
 
         operator T&() const
         {
- return this->derived().unwrap();
+ return this->derived().get();
         }
 
         bool operator==( const wrapper_crtp& r )const
         {
- return this->derived().unwrap() == r.derived().unwrap();
+ return this->derived().get() == r.derived().get();
         }
 
         bool operator<( const wrapper_crtp& r )const
         {
- return this->derived().unwrap() < r.derived().unwrap();
+ return this->derived().get() < r.derived().get();
         }
 
         bool operator==( typename boost::call_traits<T>::param_type r )const
         {
- return this->derived().unwrap() == r;
+ return this->derived().get() == r;
         }
 
         bool operator<( typename boost::call_traits<T>::param_type r )const
         {
- return this->derived().unwrap() < r;
+ return this->derived().get() < r;
         }
 
         bool operator>( typename boost::call_traits<T>::param_type r )const
         {
- return this->derived().unwrap() > r;
+ return this->derived().get() > r;
         }
         
             template<class CharT, class Traits>
@@ -98,7 +98,7 @@
             operator<<(std::basic_ostream<CharT,Traits>& os,
                        const wrapper_crtp& w)
             {
- return (os << w.derived().unwrap() );
+ return (os << w.derived().get() );
             }
 
     };

Modified: sandbox/statistics/support/boost/assign/v2/utility/chain/adaptor.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/utility/chain/adaptor.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/utility/chain/adaptor.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -21,7 +21,7 @@
 
     // Tag1 controls conversion. Seet traits/type/meta_convert.hpp
 
- template<typename U,typename Tag1 = use_default,typename Tag2 = void_>
+ template<typename U, typename Tag1 = use_default, typename Tag2 = void_>
     struct adaptor1
     {
         adaptor1( U& r ) : value( r ){}

Modified: sandbox/statistics/support/boost/assign/v2/utility/chain/checking/twin_values.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/utility/chain/checking/twin_values.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/utility/chain/checking/twin_values.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -16,7 +16,7 @@
 #include <boost/mpl/assert.hpp>
 #include <boost/range/algorithm/copy.hpp>
 #include <boost/assign/v2/detail/checking/range.hpp>
-#include <boost/assign/v2/ref/detail/unwrap/range.hpp>
+#include <boost/assign/v2/ref/wrapper/get.hpp>
 #include <boost/assign/v2/ref/wrapper/copy.hpp>
 #include <boost/assign/v2/utility/chain/use_lvalue.hpp>
 #include <boost/assign/v2/utility/chain/pipe.hpp>
@@ -49,36 +49,31 @@
 void verify_mpl()
 {
         namespace as2 = assign::v2;
+ // Value container
     typedef std::vector<T> vec_t_;
     typedef typename add_const_if<qual_v1, vec_t_ >::type vec1_;
     typedef typename as2::ref::copy_wrapper<
             typename add_const_if<qual_e2, T>::type
>::type w_;
+ typedef vec1_ r1_; // alias
+
+ // Ref-wrappers
     typedef std::vector<w_> vec_w_;
     typedef typename add_const_if<qual_v2, vec_w_ >::type vec2_;
-
- typedef typename ref::result_of::unwrap_range<vec1_>::type r1_;
- typedef typename ref::result_of::unwrap_range<vec2_>::type r2_;
+ // Transformation through range_get (necessary)
+ typedef typename ref::result_of::range_get<vec2_>::type r2_;
 
     {
         typedef r1_ cr1_;
         typedef r2_ cr2_;
         verify_use_lvalue<cr1_, cr2_, the_value>();
+ verify_use_lvalue<cr2_, cr1_, the_value>();
     }
     {
         typedef r1_ cr1_;
         typedef r2_ const cr2_;
         verify_use_lvalue<cr1_, cr2_, the_value>();
- }
- {
- typedef r1_ cr1_;
- typedef r2_ const cr2_;
- verify_use_lvalue<cr1_, cr2_, the_value>();
- }
- {
- typedef r1_ const cr1_;
- typedef r2_ const cr2_;
- verify_use_lvalue<cr1_, cr2_, the_value>();
+ verify_use_lvalue<cr2_, cr1_, the_value>();
     }
 }
 
@@ -88,28 +83,25 @@
             // mpl checks
         {
                 typedef std::vector<T> vec_;
- typedef v2::result_of::chain<vec_,vec_> caller1_;
+ typedef v2::result_of::chain<vec_, vec_> caller1_;
                 typedef typename caller1_::type range1_;
                 typedef typename boost::range_reference<range1_>::type ref1_;
- typedef boost::is_same<ref1_, T&> is_same1_;
- BOOST_MPL_ASSERT((is_same1_));
- typedef v2::result_of::chain<range1_ const,vec_> caller2_;
+ BOOST_MPL_ASSERT(( boost::is_same<ref1_, T&> ));
+ typedef v2::result_of::chain<range1_ const, vec_> caller2_;
                 typedef typename caller2_::type range2_;
                 typedef typename boost::range_reference<range2_>::type ref2_;
- typedef boost::is_same<ref2_, T&> is_same2_;
- BOOST_MPL_ASSERT((is_same2_));
+ BOOST_MPL_ASSERT(( boost::is_same<ref2_, T&> ));
             }
 
 // verify_mpl<T, qual_v1, qual_e2 , qual_v2 , the_value>()
                 verify_mpl<T, false , false , false , true >();
- //verify_mpl<T, false , false , true , true >();
- //verify_mpl<T, false , true , false , false >();
- //verify_mpl<T, false , true , true , false >();
- //verify_mpl<T, true , false , false , false >();
- //verify_mpl<T, true , false , true , false >();
- //verify_mpl<T, true , true , false , false >();
- //verify_mpl<T, true , true , true , false >();
-/*
+ verify_mpl<T, false , false , true , true >();
+ verify_mpl<T, false , true , false , false >();
+ verify_mpl<T, false , true , true , false >();
+ verify_mpl<T, true , false , false , false >();
+ verify_mpl<T, true , false , true , false >();
+ verify_mpl<T, true , true , false , false >();
+ verify_mpl<T, true , true , true , false >();
 
         // runtime checks
             {
@@ -117,24 +109,29 @@
             vt_ vt1( 2 ), vt2( 3 ), vt3( 3 );
             vt_ vt;
                     {
+ // Value containers
                 namespace ns = v2::checking::constants;
- vt.push_back( ns::a );
- vt.push_back( ns::b );
- vt.push_back( ns::c );
- vt.push_back( ns::d );
- vt.push_back( ns::e );
- vt.push_back( ns::f );
- vt.push_back( ns::g );
- vt.push_back( ns::h );
+ vt.push_back( ns::a ); // 1
+ vt.push_back( ns::b ); // 2
+
+ vt.push_back( ns::c ); // 1
+ vt.push_back( ns::d ); // 2
+ vt.push_back( ns::e ); // 3
+
+ vt.push_back( ns::f ); // 1
+ vt.push_back( ns::g ); // 2
+ vt.push_back( ns::h ); // 3
                 {
- using namespace adaptor;
+
+ BOOST_ASSIGN_V2_CHECK( // pre-condition
+ vt1.size() + vt2.size() + vt3.size() == vt.size()
+ );
                     boost::copy(
                         vt,
- boost::begin( vt1 | _chain( vt2 ) | _chain( vt3 ))
+ boost::begin( vt1 | _chain( vt2 ) | _chain( vt3 ) )
                     );
                 }
                 {
- using namespace adaptor;
                         typedef v2::container_tag::range tag_;
                     v2::checking::do_check(
                             tag_(),
@@ -143,32 +140,40 @@
                 }
             }
             {
- T a1 = -1, b1 = -1, c1 = -1, d1 = -1,
- e1 = -1, f1 = -1, g1 = -1, h1 = -1;
+ // Mix and Value and Ref-wrapper containers
 
                 typedef typename ref::copy_wrapper<T>::type w_;
                     typedef boost::is_reference_wrapper<w_> is_;
 
- boost::array<int, 3> vw2;
- std::vector<int> vw1( 2 );
- std::vector<int> vw3( 3 );
- using namespace adaptor;
+ // rese to default values
+ vt1.resize( vt1.size() );
+ vt3.resize( vt3.size() );
+
+ T x = -1, y = -1, z = -1;
+ boost::array<w_, 3> vw2;
+ // Wrappers must bind first!
+ vw2[0].rebind( x );
+ vw2[1].rebind( y );
+ vw2[2].rebind( z );
                 boost::copy(
                         vt,
- boost::begin( vw1 | _chain( vw2 ) | _chain( vw3 ) )
+ boost::begin(
+ vt1 | _chain(
+ vw2 | ref::_get // necessary
+ ) | _chain( vt3 ) )
                 );
                 {
- typedef v2::container_tag::range tag_;
- v2::checking::do_check(
- tag_(),
- vw1 | _chain( vw2 ) | _chain( vw3 )
+ namespace ns = v2::checking::constants;
+ ns::do_check(
+ vt1[0], vt1[1],
+ x, y, z,
+ vt3[0], vt3[1], vt3[2]
                     );
                 }
                 // suppresses warning unused
- if(a1 && b1 && c1 && d1 && e1 && f1 && g1 && h1){}
+ if(x && y && z){}
                         }
         }// runtime checks
-*/
     }// do_check
 
 }// twin_values

Modified: sandbox/statistics/support/boost/assign/v2/utility/chain/use_lvalue.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/utility/chain/use_lvalue.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/utility/chain/use_lvalue.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -26,37 +26,23 @@
 namespace v2{
 namespace chain_aux{
 
- template<typename U1,typename U2,typename Tag = use_default>
- struct use_lvalue
- {
-
- typedef typename boost::range_reference<U1>::type r1_;
- typedef typename boost::range_reference<U2>::type r2_;
- typedef boost::mpl::and_<
- boost::is_reference<r1_>,
- boost::is_reference<r2_>
- > are_refs_;
-
- typedef boost::is_same<r1_,r2_> are_same_;
-
- typedef boost::mpl::and_<
- are_refs_,
- are_same_
- > are_same_refs_;
-
- typedef boost::is_const<
- typename boost::remove_reference<r1_>::type
- > is_const_;
-
- typedef typename boost::mpl::eval_if<
- is_const_,
- boost::mpl::identity<boost::mpl::false_>,
- are_same_refs_
- >::type type;
-
- BOOST_STATIC_CONSTANT(bool, value = type::value);
- };
+ template<typename U1, typename U2,
+ bool is_r = boost::is_reference<U1>::value,
+ bool is_c = boost::is_const<
+ typename boost::remove_reference<U1>::type
+ >::value
+ >
+ struct use_lvalue_impl : boost::mpl::false_{};
+
+ template<typename U>
+ struct use_lvalue_impl<U, U, true, false> : boost::mpl::true_{};
 
+ template<typename R1, typename R2, typename Tag = use_default>
+ struct use_lvalue : use_lvalue_impl<
+ typename boost::range_reference<R1>::type,
+ typename boost::range_reference<R2>::type
+ >{};
+
 }// chain_aux
 }// v2
 }// assign

Modified: sandbox/statistics/support/boost/assign/v2/utility/convert/converter.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/utility/convert/converter.hpp (original)
+++ sandbox/statistics/support/boost/assign/v2/utility/convert/converter.hpp 2011-01-13 00:37:46 EST (Thu, 13 Jan 2011)
@@ -42,7 +42,7 @@
         T type()const
         {
                 typedef typename convert_aux::deduce_tag<T, U>::type tag_;
- return convert<T>( this->w.unwrap(), tag_() );
+ return convert<T>( this->w.get(), tag_() );
         }
 
                 private:


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