Boost logo

Boost-Commit :

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


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