$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67983 - in sandbox/statistics/support/boost/assign/v2: . chain/aux_ chain/checking chain/traits detail/relational_op misc/convert put/deque ref/detail/unwrap ref/wrapper temporary
From: erwann.rogard_at_[hidden]
Date: 2011-01-11 16:01:52
Author: e_r
Date: 2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
New Revision: 67983
URL: http://svn.boost.org/trac/boost/changeset/67983
Log:
upd boost/assign/v2
Text files modified: 
   sandbox/statistics/support/boost/assign/v2/chain.hpp                          |    22 --                                      
   sandbox/statistics/support/boost/assign/v2/chain/aux_/adaptor.hpp             |    66 -------                                 
   sandbox/statistics/support/boost/assign/v2/chain/aux_/bitwise_or.hpp          |    63 ------                                  
   sandbox/statistics/support/boost/assign/v2/chain/aux_/logical_and.hpp         |    46 -----                                   
   sandbox/statistics/support/boost/assign/v2/chain/checking/distinct_values.hpp |    73 --------                                
   sandbox/statistics/support/boost/assign/v2/chain/checking/twin_values.hpp     |   182 --------------------                    
   sandbox/statistics/support/boost/assign/v2/chain/traits/iterator.hpp          |    62 ------                                  
   sandbox/statistics/support/boost/assign/v2/chain/traits/range.hpp             |    60 ------                                  
   sandbox/statistics/support/boost/assign/v2/chain/traits/result.hpp            |    44 ----                                    
   sandbox/statistics/support/boost/assign/v2/chain/traits/use_lvalue.hpp        |    66 -------                                 
   sandbox/statistics/support/boost/assign/v2/detail/relational_op/crtp.hpp      |    16                                         
   sandbox/statistics/support/boost/assign/v2/misc/convert/converter.hpp         |     2                                         
   sandbox/statistics/support/boost/assign/v2/put/deque/cont.hpp                 |     7                                         
   sandbox/statistics/support/boost/assign/v2/ref.hpp                            |     5                                         
   sandbox/statistics/support/boost/assign/v2/ref/detail/unwrap/iterator.hpp     |    13                                         
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/copy.hpp               |     3                                         
   sandbox/statistics/support/boost/assign/v2/ref/wrapper/crtp.hpp               |     9 +                                       
   sandbox/statistics/support/boost/assign/v2/temporary/chain_iterator.hpp       |   359 --------------------------------------- 
   18 files changed, 35 insertions(+), 1063 deletions(-)
Modified: sandbox/statistics/support/boost/assign/v2/chain.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,21 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_ER_2010_HPP
-#include <boost/assign/v2/chain/traits/result.hpp>
-#include <boost/assign/v2/chain/aux_/bitwise_or.hpp>
-
-// Usage
-//  using namespace boost::assign::v2;
-//  using namespace adaptor;
-//  boost::copy(
-//    r1 | _chain( r2 ) | _chain( r3 ), ostream_iterator<T>(std::cout, " "));
-
-#endif
+// TODO remove file
\ No newline at end of file
Modified: sandbox/statistics/support/boost/assign/v2/chain/aux_/adaptor.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/aux_/adaptor.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/aux_/adaptor.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,65 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2009 Neil Groves                                          //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_RANGE_CHAIN_AUX_ADAPTOR_ER_2010_HPP
-#define BOOST_ASSIGN_V2_RANGE_CHAIN_AUX_ADAPTOR_ER_2010_HPP
-#include <boost/mpl/void.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace chain_aux{
-
-    typedef boost::mpl::void_ void_;
-
-    // Tag1 controls conversion. Seet traits/type/meta_convert.hpp
-
-    template<typename U,typename Tag1 = use_default,typename Tag2 = void_>
-    struct adaptor1
-    {
-        adaptor1( U& r ) : value( r ){}
-        mutable U& value;
-    };
-
-    template<
-    	typename Tag1 = use_default,
-        typename Tag2 = void_
-    >
-    struct adaptor2
-    {
-    
-        adaptor2(){}
-    
-        template<typename U>
-        struct result{ 
-           typedef chain_aux::adaptor1<U, Tag1, Tag2> type; 
-           static type call(U& u){ return type( u ); }
-        };
-    
-        template<typename R>
-        typename result<R>::type
-        operator()(R& r)const{ 
-        	return result<R>::call ( r ); 
-        }
-
-        template<typename R>
-        typename result<R const>::type
-        operator()(R const& r)const{ 
-        	return result<R const>::call( r ); 
-        }
-        
-    };
-    
-}// chain_aux
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/statistics/support/boost/assign/v2/chain/aux_/bitwise_or.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/aux_/bitwise_or.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/aux_/bitwise_or.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,62 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2009 Neil Groves                                          //
-//  Copyright (C) 2010 Manuel Peinado Gallego                               //
-//  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_RANGE_CHAIN_AUX_BITWISE_OR_ER_2010_HPP
-#define BOOST_ASSIGN_V2_RANGE_CHAIN_AUX_BITWISE_OR_ER_2010_HPP
-#include <boost/mpl/void.hpp>
-#include <boost/assign/v2/chain/traits/result.hpp>
-#include <boost/assign/v2/chain/aux_/adaptor.hpp>
-
-// Design:
-// - The original design is boost::chain in RangeEx
-// - ER modified as follows:
-// 	- sets the underlying iterator's Reference to one which both inputs are
-// 	convertible to.
-// 	- Constness is determined by that of the elements in each range, not that
-//  of the range.
-// - Finally, MPG proposed a way to compose chains http://gist.github.com/287791
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace{
-	const chain_aux::adaptor2<> _chain = chain_aux::adaptor2<>();
-}
-namespace result_of{
-
-    template<typename R1, typename R2, typename Tag = use_default>
-    struct chain : chain_aux::result<R1, R2, Tag>{};
-
-}// result_of
-namespace chain_aux{
-
-#define BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(U1) \
-    template<typename R1, typename U2, typename Tag> \
-    typename chain_aux::result<U1, U2, Tag>::type \
-    operator|(U1 & r1, chain_aux::adaptor1<U2, Tag> const & h) \
-    { \
-        typedef chain_aux::result<U1, U2, Tag> caller_; \
-        return caller_::call( r1, h.value ); \
-    } \
-\
-/**/
-
-BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1      )
-BOOST_ASSIGN_V2_FRAMEWORK_CHAIN(R1 const)
-#undef BOOST_ASSIGN_V2_FRAMEWORK_CHAIN
-
-}// chain_aux
-
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file
Modified: sandbox/statistics/support/boost/assign/v2/chain/aux_/logical_and.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/aux_/logical_and.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/aux_/logical_and.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,45 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2009 Neil Groves                                          //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_FUNCTION_LOGICAL_AND_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_FUNCTION_LOGICAL_AND_ER_2010_HPP
-#include <boost/assign/v2/chain/aux_/bitwise_or.hpp>
-#include <boost/assign/v2/chain/traits/result.hpp>
-
-// TODO gauge interest for this alternative syntax.
-
-namespace boost{
-namespace assign{
-namespace v2{
-/*
-#define MACRO(U1, U2) \
-template<typename R1,typename R2> \
-typename chain_aux::result< \
-    U1, \
-    U2  \
->::type \
-operator&&(U1& r1, U2 & r2) \
-{ \
-    return r1 | _chain( r2 ); \
-} \
-*/
-/**/
-/*
-MACRO( R1      , R2       )
-MACRO( R1      , R2 const )
-MACRO( R1 const, R2       )
-MACRO( R1 const, R2 const )
-#undef MACRO
-*/
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
\ No newline at end of file
Modified: sandbox/statistics/support/boost/assign/v2/chain/checking/distinct_values.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/checking/distinct_values.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/checking/distinct_values.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,72 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_CHECKING_DISTINCT_VALUES_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_CHECKING_DISTINCT_VALUES_ER_2010_HPP
-#include <vector>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/assign/v2/detail/checking/constants.hpp>
-#include <boost/assign/v2/detail/checking/container.hpp>
-#include <boost/assign/v2/chain.hpp>
-
-namespace boost{
-namespace assign{ 
-namespace v2{
-namespace checking{
-namespace chain{
-namespace distinct_values{
-
-// If the value types of the two ranges differ, their references must be 
-// converted to value_type. In particular, lvalue cannot be preserved.
-
-#define MACRO(T1,T2)\
-    template<typename T>\
-    void do_check(typename boost::enable_if<boost::is_same<T,T1> >::type* = 0)\
-    {\
-        typedef T1 t1_;\
-        typedef T2 t2_;\
-        typedef std::vector<T1> vec1_;\
-        typedef std::vector<T2> vec2_;\
-        vec1_ vec1, vec3;\
-        vec2_ vec2;\
-        {\
-            namespace ns = v2::checking::constants;\
-            vec1.push_back( ns::a );\
-            vec1.push_back( ns::b );\
-            vec2.push_back( ns::c );\
-            vec2.push_back( ns::d );\
-            vec2.push_back( ns::e );\
-            vec3.push_back( ns::f );\
-            vec3.push_back( ns::g );\
-            vec3.push_back( ns::h );\
-        }\
-        namespace chk = checking::container;\
-        {\
-    		chk::do_check( vec1 | _chain( vec2 ) | _chain( vec3 ) );\
-        }\
-    }\
-/**/
-
-
-MACRO(short  , int)
-MACRO(int    , long)
-MACRO(float  , double)
-MACRO(double , long double)
-
-#undef MACRO
-
-}// distinct_values
-}// chain
-}// checking
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/statistics/support/boost/assign/v2/chain/checking/twin_values.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/checking/twin_values.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/checking/twin_values.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,181 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_CHECKING_TWIN_VALUES_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_CHECKING_TWIN_VALUES_ER_2010_HPP
-#include <boost/static_assert.hpp>
-#include <vector>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#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/copy.hpp>
-#include <boost/assign/v2/chain/traits/use_lvalue.hpp>
-#include <boost/assign/v2/chain.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace checking{
-namespace chain{
-namespace twin_values{
-
-template<typename cr1_, typename cr2_, bool the_value>
-void verify_use_lvalue()
-{
-    typedef v2::chain_traits::use_lvalue<cr1_, cr2_>  use_lvalue_; 
-    BOOST_STATIC_ASSERT( use_lvalue_::value == the_value ); 
-    typedef typename boost::mpl::eval_if_c< 
-        the_value, 
-        boost::mpl::identity<boost::mpl::void_>, // why?
-        v2::result_of::chain<cr1_, cr2_> 
-    >::type result_; 
-}
-
-template<bool x, typename T>
-struct add_const_if : boost::mpl::eval_if_c<
-	x, boost::add_const<T>, boost::mpl::identity<T>
->{};
-
-template<typename T, bool qual_v1, bool qual_e2, bool qual_v2, bool the_value>
-void verify_mpl()
-{
-	namespace as2 = assign::v2;
-    typedef std::vector<T> vec_t_;
-    typedef typename add_const_if<qual_v1, vec_t_ >::type vec1_; 
-    typedef typename as2::ref::type_traits::copy_wrapper<
-    	typename add_const_if<qual_e2, T>::type
-    >::type w_; 
-    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_; 
-
-    {  
-        typedef r1_       cr1_;
-        typedef r2_       cr2_;
-        verify_use_lvalue<cr1_, cr2_, 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>();
-    } 
-}
-
-    template<typename T>
-    void do_check()
-    {
-    	// mpl checks
-        {
-        	typedef std::vector<T> vec_;
-        	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_;
-        	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_));
-	    }
-
-//      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    >();
-/*
-
-        // runtime checks
-    	{
-            typedef std::vector<T> vt_;
-            vt_ vt1( 2 ), vt2( 3 ), vt3( 3 );
-            vt_ vt;
-    		{
-                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 );
-                {
-                    using namespace adaptor;
-                    boost::copy(
-                        vt,
-                        boost::begin( vt1 | _chain( vt2 ) | _chain( vt3 ))
-                    );
-                }
-                {
-                	using namespace adaptor;
-                	typedef v2::container_tag::range tag_;
-                    v2::checking::do_check(
-                    	tag_(),
-                        vt1 | _chain( vt2 ) | _chain( vt3 )
-                    );
-                }
-            }
-            {
-	            T a1 = -1, b1 = -1, c1 = -1, d1 = -1, 
-                  e1 = -1, f1 = -1, g1 = -1, h1 = -1;
-
-                typedef typename ref::type_traits::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;
-                boost::copy(
-                	vt,
-                    boost::begin( vw1 | _chain( vw2 ) | _chain( vw3 ) )
-                );
-                {
-                	typedef v2::container_tag::range tag_;
-                    v2::checking::do_check(
-                    	tag_(),
-                        vw1 | _chain( vw2 ) | _chain( vw3 )
-                    );
-                }
-                // suppresses warning unused
-                if(a1 && b1 && c1 && d1 && e1 && f1 && g1 && h1){} 
-			}
-        }// runtime checks
-*/
-    }// do_check
-
-}// twin_values
-}// chain
-}// checking
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/statistics/support/boost/assign/v2/chain/traits/iterator.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/traits/iterator.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/iterator.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,61 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_RANGE_CHAIN_TRAITS_ITERATOR_ER_2010_HPP
-#define BOOST_ASSIGN_V2_RANGE_CHAIN_TRAITS_ITERATOR_ER_2010_HPP
-#include <boost/mpl/apply.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-#include <boost/assign/v2/temporary/chain_iterator.hpp>
-#include <boost/range/detail/demote_iterator_traversal_tag.hpp>
-#include <boost/assign/v2/detail/traits/type/meta_convert.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace chain_traits{
-
-	template<
-    	typename It1, 
-        typename It2,
-        typename Tag
-    >
-	struct iterator
-	{
-        typedef typename boost::iterator_reference<It1>::type ref1_;
-        typedef typename boost::iterator_reference<It2>::type ref2_;
-
-        typedef assign::v2::type_traits::meta_convert<Tag> convert_;
-        typedef typename boost::mpl::apply2<
-            convert_,
-            ref1_,
-            ref2_
-        >::type reference;
-        
-        typedef typename boost::remove_reference<reference>::type value_type;
-    
-    	typedef boost::range_detail::chain_iterator<
-        	It1,
-        	It2,
-        	value_type, 	
-        	reference,
-			// TODO should be able to use default 
-            // problems arise because traits are probably not defined for 
-            // complicated ranges
-            boost::single_pass_traversal_tag  
-    	> type;
-
-	};
-
-}// chain_traits
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/statistics/support/boost/assign/v2/chain/traits/range.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/traits/range.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/range.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,59 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_TRAITS_RANGE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_TRAITS_RANGE_ER_2010_HPP
-#include <boost/concept/assert.hpp>
-#include <boost/range/iterator_range.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/assign/v2/chain/traits/iterator.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace chain_traits{
-
-    template<typename R1, typename R2, template<typename> class F, typename Tag>
-    struct range{
-
-        typedef typename chain_traits::iterator<
-            typename F<R1>::type,
-            typename F<R2>::type,
-            Tag
-        >::type iterator_t;
-	    typedef boost::iterator_range< iterator_t > type;
-        
-        static type call(R1& r1, R2& r2)
-        {
-            BOOST_CONCEPT_ASSERT((SinglePassRangeConcept<R1>));
-            BOOST_CONCEPT_ASSERT((SinglePassRangeConcept<R2>));
-			namespace ns = boost::range_detail;
-            typedef ns::chain_iterator_begin_tag begin_tag_;
-            typedef ns::chain_iterator_end_tag end_tag_;
-			return type(
-				iterator_t(r1, r2, begin_tag_()),
-				iterator_t(r1, r2, end_tag_())
-        	);
-        }
-    };
-
-    template<typename R1, typename R2, typename Tag>
-    struct range_l
-    	: chain_traits::range< R1, R2, boost::range_iterator,Tag>{};
-    
-    template<typename R1, typename R2, typename Tag>
-    struct range_r
-    	: chain_traits::range<R1, R2, boost::range_const_iterator,Tag>{};
-
-}// chain_traits
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/statistics/support/boost/assign/v2/chain/traits/result.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/traits/result.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/result.hpp	2011-01-11 16:01:48 EST (Tue, 11 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_CHAIN_TRAITS_RESULT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_TRAITS_RESULT_ER_2010_HPP
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/assign/v2/chain/traits/use_lvalue.hpp>
-#include <boost/assign/v2/chain/traits/range.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-namespace chain_aux{
-
-    template<typename R1,typename R2,typename Tag = use_default> 
-    struct result{
-    	typedef typename  boost::mpl::eval_if<
-        	chain_traits::use_lvalue<R1,R2,Tag>,
-        	boost::mpl::identity< chain_traits::range_l<R1, R2, Tag> >,
-        	boost::mpl::identity< chain_traits::range_r<R1, R2, Tag> >
-    	>::type caller_;
-        
-        typedef typename caller_::type type;
-        
-        static type call(R1& r1, R2& r2)
-        {
-            return caller_::call( r1, r2 );
-        }
-    };
-
-}// chain_aux
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/statistics/support/boost/assign/v2/chain/traits/use_lvalue.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/chain/traits/use_lvalue.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/chain/traits/use_lvalue.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,65 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_CHAIN_TRAITS_USE_LVALUE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_CHAIN_TRAITS_USE_LVALUE_ER_2010_HPP
-#include <boost/config.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/range/reference.hpp>
-
-namespace boost{
-	struct use_default;
-namespace assign{
-namespace v2{
-namespace chain_traits{
-
-    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);
-    };
-
-}// chain_traits
-}// v2
-}// assign
-}// boost
-
-#endif
+// TODO remove file
Modified: sandbox/statistics/support/boost/assign/v2/detail/relational_op/crtp.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/detail/relational_op/crtp.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/detail/relational_op/crtp.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -7,15 +7,15 @@
 //  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_RELATIONAL_OP_CRTP_ER_2010_HPP
-#define BOOST_ASSIGN_V2_DETAIL_RELATIONAL_OP_CRTP_ER_2010_HPP
+#ifndef BOOST_ASSIGN_V2_DETAIL_RELATIONAL_CRTP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_DETAIL_RELATIONAL_CRTP_ER_2010_HPP
 #include <boost/utility/enable_if.hpp>
 #include <boost/type_traits/is_base_of.hpp> 
 
 namespace boost{
 namespace assign{
 namespace v2{
-namespace relational_op_aux{
+namespace relational_aux{
 
 // A solution with 3 overloads was proposed here.
 // http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/389d8fe278ef0b13#
@@ -24,8 +24,8 @@
         struct base{};
 
         // D must implement:
-    //	template<typename T> bool equal_to(const T&)const;
-    // 	template<typename T> bool less_than(const T&)const;
+    //	template<typename T> bool equal_to(D const&, const T&);
+    // 	template<typename T> bool less_than(D const&, const T&);
         template<typename D>
         struct crtp{// : base{
     
@@ -38,7 +38,7 @@
 
         template< typename A ,typename B>
     typename boost::disable_if<
-		relational_op_aux::is_relational<A>,
+		relational_aux::is_relational<A>,
 //    	boost::is_base_of<base,A>,
         bool
     >::type
@@ -56,7 +56,7 @@
         template< typename A ,typename B>
     typename boost::disable_if<
 //    	boost::is_base_of<base,A>,
-		relational_op_aux::is_relational<A>,
+		relational_aux::is_relational<A>,
         bool
     >::type
     operator<( A const& a, crtp< B > const& b) 
@@ -97,7 +97,7 @@
 
 #undef MACRO
     
-}// relational_op_aux
+}// relational_aux
 }// v2
 }// assign
 }// boost
Modified: sandbox/statistics/support/boost/assign/v2/misc/convert/converter.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/misc/convert/converter.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/misc/convert/converter.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -24,7 +24,7 @@
     class converter
     {
     
-     	typedef typename ref::type_traits::copy_wrapper<
+     	typedef typename ref::copy_wrapper<
                 U const
         >::type wrapper_;
         
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-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -19,16 +19,11 @@
 #include <boost/assign/v2/put.hpp>
 #include <boost/assign/v2/put/generic/result_of_modulo.hpp>
 #include <boost/assign/v2/put/generic/crtp.hpp>
-/*#include <boost/assign/v2/detail/relational_op.hpp>*/
+#include <boost/assign/v2/put/deque/fwd.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
-namespace put_deque_aux{
-
-    template<typename T,typename F,typename Tag> class cont;
-
-}// put_deque_aux
 namespace result_of_modulo{
 
     template<typename T,typename F,typename Tag>
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-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -12,9 +12,4 @@
 
 #include <boost/assign/v2/ref/wrapper.hpp>
 
-// Basic usage
-// using namespace boost::assign:v2;
-// namespace ns = ref::assign_copy;
-// ns::csv_anon( x, y ,z ).assign( w );
-
 #endif
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-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -23,6 +23,8 @@
 //  (*it);
 // Note this is necessary for chaining, at least.
 
+#include <boost/type_traits/decay.hpp>
+
 namespace boost{
         struct use_default;
 namespace assign{ 
@@ -62,18 +64,13 @@
                 typename boost::add_reference<
                 typename boost::unwrap_reference<W>::type
         >::type,
-        W,
+        //W,
+		typename boost::decay<typename boost::unwrap_reference<W>::type>::type,
         false
     >
     {
             typedef typename boost::unwrap_reference<W>::type inner_value_type;
-        // If inner_value_type == T[], and value_type were set to that type,
-        // compiler complains that iterator_facade's operator[] would copy T[]
-        // So, instead, value_type = W, such that the returned value acts a bit
-        // like operator_brackets_proxy<I>.
-		//    
-    	// In contrast, the solution adapted in Boost.Assign v1 in this kind
-        // of situation is to use boost::decay<inner_value_type>::type.
+        // Case inner_value_type == T[] calls for decay<>
     
     };
 
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-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -75,12 +75,9 @@
 
     };
     
-namespace type_traits{
-    
     template<typename T>
     struct copy_wrapper{ typedef ref::wrapper<assign_tag::copy,T> type; };
         
-}// type_traits
 }// 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-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -10,6 +10,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_REF_WRAPPER_CRTP_ER_MPG_2010_HPP
 #define BOOST_ASSIGN_V2_REF_WRAPPER_CRTP_ER_MPG_2010_HPP
+#include <iosfwd>
 #include <boost/utility/enable_if.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/remove_const.hpp>
@@ -92,9 +93,17 @@
             return this->derived().unwrap() > r;
         }
         
+    	template<class CharT, class Traits>
+    	friend std::basic_ostream<CharT,Traits>&
+    	operator<<(std::basic_ostream<CharT,Traits>& os,
+        	       const wrapper_crtp& w)
+    	{
+        	return (os << w.derived().unwrap() );
+    	}
 
     };
 
+
         template<typename D,typename T>
         void rebind( wrapper_crtp<D,T>& a, T& r ){ a.rebind( r ); }
 
Modified: sandbox/statistics/support/boost/assign/v2/temporary/chain_iterator.hpp
==============================================================================
--- sandbox/statistics/support/boost/assign/v2/temporary/chain_iterator.hpp	(original)
+++ sandbox/statistics/support/boost/assign/v2/temporary/chain_iterator.hpp	2011-01-11 16:01:48 EST (Tue, 11 Jan 2011)
@@ -1,358 +1 @@
-// Boost.Range library
-//
-//  Copyright Neil Groves 2009. Use, modification and
-//  distribution is 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)
-//
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_CHAIN_ITERATOR_HPP_INCLUDED
-#define BOOST_RANGE_DETAIL_CHAIN_ITERATOR_HPP_INCLUDED
-
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/intrusive_ptr.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/empty.hpp>
-#include <boost/range/detail/demote_iterator_traversal_tag.hpp>
-#include <boost/range/value_type.hpp>
-#include <boost/utility.hpp>
-
-namespace boost
-{
-    namespace range_detail
-    {
-
-template<typename Iterator1, typename Iterator2>
-struct chain_iterator_link
-{
-private:
-    class reference_count_t
-    {
-    public:
-        reference_count_t() : m_count(0u) {}
-        reference_count_t(const reference_count_t&) : m_count(0u) {}
-        reference_count_t& operator=(const reference_count_t&) { return *this; }
-
-        void increment() { ++m_count; }
-        bool decrement() { return --m_count ? false : true; }
-
-    private:
-        unsigned int m_count;
-    };
-
-public:
-    chain_iterator_link(Iterator1 last1, Iterator2 first2)
-        :    last1(last1)
-        ,    first2(first2)
-    {
-    }
-
-    void add_reference() const
-    {
-        count.increment();
-    }
-
-    bool release_reference() const
-    {
-        return count.decrement();
-    }
-
-    Iterator1 last1;
-    Iterator2 first2;
-
-private:
-    chain_iterator_link() /* = delete */ ;
-
-    mutable reference_count_t count;
-};
-} // range_detail
-
-template<typename Iterator1, typename Iterator2>
-inline void intrusive_ptr_add_ref(const range_detail::chain_iterator_link<Iterator1,Iterator2>* p)
-{
-    p->add_reference();
-}
-
-template<typename Iterator1, typename Iterator2>
-inline void intrusive_ptr_release(const range_detail::chain_iterator_link<Iterator1,Iterator2>* p)
-{
-    if (p->release_reference())
-        delete p;
-}
-
-namespace range_detail
-{
-
-class chain_iterator_begin_tag {};
-class chain_iterator_end_tag {};
-
-template<typename Iterator1
-       , typename Iterator2
-       , typename Reference
->
-class chain_iterator_union
-{
-public:
-    typedef Iterator1 iterator1_t;
-    typedef Iterator2 iterator2_t;
-
-    chain_iterator_union() {}
-    chain_iterator_union(unsigned int /*selected*/, const iterator1_t& it1, const iterator2_t& it2) : m_it1(it1), m_it2(it2) {}
-
-    iterator1_t& it1() { return m_it1; }
-    const iterator1_t& it1() const { return m_it1; }
-
-    iterator2_t& it2() { return m_it2; }
-    const iterator2_t& it2() const { return m_it2; }
-
-    Reference dereference(unsigned int selected) const
-    {
-        return selected ? *m_it2 : *m_it1;
-    }
-
-    bool equal(const chain_iterator_union& other, unsigned int selected) const
-    {
-        return selected
-            ? m_it2 == other.m_it2
-            : m_it1 == other.m_it1;
-    }
-
-private:
-    iterator1_t m_it1;
-    iterator2_t m_it2;
-};
-
-template<class Iterator, class Reference>
-class chain_iterator_union<Iterator, Iterator, Reference>
-{
-public:
-    typedef Iterator iterator1_t;
-    typedef Iterator iterator2_t;
-
-    chain_iterator_union() {}
-    
-    chain_iterator_union(unsigned int selected, const iterator1_t& it1, const iterator2_t& it2)
-        : m_it(selected ? it2 : it1)
-    {
-    }
-
-    iterator1_t& it1() { return m_it; }
-    const iterator1_t& it1() const { return m_it; }
-
-    iterator2_t& it2() { return m_it; }
-    const iterator2_t& it2() const { return m_it; }
-
-    Reference dereference(unsigned int) const
-    {
-        return *m_it;
-    }
-
-    bool equal(const chain_iterator_union& other, unsigned int selected) const
-    {
-        return m_it == other.m_it;
-    }
-
-private:
-    iterator1_t m_it;
-};
-
-template<typename Iterator1
-       , typename Iterator2
-       , typename ValueType = typename iterator_value<Iterator1>::type
-       , typename Reference = typename iterator_reference<Iterator1>::type
-       , typename Traversal = typename demote_iterator_traversal_tag<
-                                  typename iterator_traversal<Iterator1>::type
-                                , typename iterator_traversal<Iterator2>::type>::type
->
-class chain_iterator
-    : public iterator_facade<chain_iterator<Iterator1,Iterator2,ValueType,Reference,Traversal>, ValueType, Traversal, Reference>
-{
-    typedef chain_iterator_link<Iterator1, Iterator2> link_t;
-    typedef chain_iterator_union<Iterator1, Iterator2, Reference> iterator_union;
-public:
-    typedef Iterator1 iterator1_t;
-    typedef Iterator2 iterator2_t;
-
-    chain_iterator() : m_section(0u) {}
-
-    chain_iterator(unsigned int section, Iterator1 current1, Iterator1 last1, Iterator2 first2, Iterator2 current2)
-        : m_section(section)
-        , m_it(section, current1, current2)
-        , m_link(new link_t(last1, first2))
-        {
-        }
-
-    template<typename Range1, typename Range2>
-    chain_iterator(Range1& r1, Range2& r2, chain_iterator_begin_tag)
-        : m_section(boost::empty(r1) ? 1u : 0u)
-        , m_it(boost::empty(r1) ? 1u : 0u, boost::begin(r1), boost::begin(r2))
-        , m_link(new link_t(boost::end(r1), boost::begin(r2)))
-    {
-    }
-
-    template<typename Range1, typename Range2>
-    chain_iterator(const Range1& r1, const Range2& r2, chain_iterator_begin_tag)
-        : m_section(boost::empty(r1) ? 1u : 0u)
-        , m_it(boost::empty(r1) ? 1u : 0u, boost::const_begin(r1), boost::const_begin(r2))
-        , m_link(new link_t(boost::const_end(r1), boost::const_begin(r2)))
-    {
-    }
-
-    template<typename Range1, typename Range2>
-    chain_iterator(Range1& r1, Range2& r2, chain_iterator_end_tag)
-        : m_section(1u)
-        , m_it(1u, boost::end(r1), boost::end(r2))
-        , m_link(new link_t(boost::end(r1), boost::begin(r2)))
-    {
-    }
-
-    template<typename Range1, typename Range2>
-    chain_iterator(const Range1& r1, const Range2& r2, chain_iterator_end_tag)
-        : m_section(1u)
-        , m_it(1u, boost::end(r1), boost::end(r2))
-//        , m_it(1u, boost::const_end(r1), boost::const_end(r2))
-        , m_link(new link_t(boost::end(r1), boost::begin(r2)))
-//        , m_link(new link_t(boost::const_end(r1), boost::const_begin(r2)))
-    {
-    }
-
-private:
-    void increment()
-    {
-        if (m_section)
-            ++m_it.it2();
-        else
-        {
-            ++m_it.it1();
-            if (m_it.it1() == m_link->last1)
-            {
-                m_it.it2() = m_link->first2;
-                m_section = 1u;
-            }
-        }
-    }
-
-    void decrement()
-    {
-        if (m_section)
-        {
-            if (m_it.it2() == m_link->first2)
-            {
-                m_it.it1() = boost::prior(m_link->last1);
-                m_section = 0u;
-            }
-            else
-                --m_it.it2();
-        }
-        else
-            --m_it.it1();
-    }
-
-    typename chain_iterator::reference dereference() const
-    {
-        return m_it.dereference(m_section);
-    }
-
-    bool equal(const chain_iterator& other) const
-    {
-        return m_section == other.m_section
-            && m_it.equal(other.m_it, m_section);
-    }
-
-    void advance(typename chain_iterator::difference_type offset)
-    {
-        if (m_section)
-            advance_from_range2(offset);
-        else
-            advance_from_range1(offset);
-    }
-
-    typename chain_iterator::difference_type distance_to(const chain_iterator& other) const
-    {
-        typename chain_iterator::difference_type result;
-        if (m_section)
-        {
-            if (other.m_section)
-                result = other.m_it.it2() - m_it.it2();
-            else
-            {
-                result = (m_link->first2 - m_it.it2())
-                       + (other.m_it.it1() - m_link->last1);
-
-                BOOST_ASSERT( result <= 0 );
-            }
-        }
-        else
-        {
-            if (other.m_section)
-            {
-                result = (m_link->last1 - m_it.it1())
-                       + (other.m_it.it2() - m_link->first2);
-            }
-            else
-                result = other.m_it.it1() - m_it.it1();
-        }
-        return result;
-    }
-
-    void advance_from_range2(typename chain_iterator::difference_type offset)
-    {
-        typedef typename chain_iterator::difference_type difference_t;
-        BOOST_ASSERT( m_section == 1u );
-        if (offset < 0)
-        {
-            difference_t r2_dist = m_link->first2 - m_it.it2();
-            BOOST_ASSERT( r2_dist <= 0 );
-            if (offset >= r2_dist)
-                std::advance(m_it.it2(), offset);
-            else
-            {
-                difference_t r1_dist = offset - r2_dist;
-                BOOST_ASSERT( r1_dist <= 0 );
-                m_it.it1() = m_link->last1 + r1_dist;
-                m_section = 0u;
-            }
-        }
-        else
-            std::advance(m_it.it2(), offset);
-    }
-
-    void advance_from_range1(typename chain_iterator::difference_type offset)
-    {
-        typedef typename chain_iterator::difference_type difference_t;
-        BOOST_ASSERT( m_section == 0u );
-        if (offset > 0)
-        {
-            difference_t r1_dist = m_link->last1 - m_it.it1();
-            BOOST_ASSERT( r1_dist >= 0 );
-            if (offset < r1_dist)
-                std::advance(m_it.it1(), offset);
-            else
-            {
-                difference_t r2_dist = offset - r1_dist;
-                BOOST_ASSERT( r2_dist >= 0 );
-                m_it.it2() = m_link->first2 + r2_dist;
-                m_section = 1u;
-            }
-        }
-        else
-            std::advance(m_it.it1(), offset);
-    }
-
-    unsigned int m_section;
-    iterator_union m_it;
-    intrusive_ptr<const link_t> m_link;
-
-    friend class ::boost::iterator_core_access;
-};
-
-    } // namespace range_detail
-
-} // namespace boost
-#endif // include guard
-
-
+// TODO remove file
\ No newline at end of file