|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r60532 - in sandbox/statistics/detail/assign/boost/assign: auto_size/chain chain
From: erwann.rogard_at_[hidden]
Date: 2010-03-12 20:56:14
Author: e_r
Date: 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
New Revision: 60532
URL: http://svn.boost.org/trac/boost/changeset/60532
Log:
m
Added:
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/
- copied from r60506, /sandbox/statistics/detail/assign/boost/assign/chain/
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/add_const.hpp
- copied unchanged from r60528, /sandbox/statistics/detail/assign/boost/assign/chain/add_const.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/auto_convert.hpp
- copied unchanged from r60528, /sandbox/statistics/detail/assign/boost/assign/chain/auto_convert.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/converter.hpp
- copied unchanged from r60528, /sandbox/statistics/detail/assign/boost/assign/chain/converter.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/is_reference_wrapper.hpp
- copied unchanged from r60528, /sandbox/statistics/detail/assign/boost/assign/chain/is_reference_wrapper.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/mpl_check.hpp
- copied unchanged from r60529, /sandbox/statistics/detail/assign/boost/assign/chain/mpl_check.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/pair_range_traits.hpp
- copied unchanged from r60529, /sandbox/statistics/detail/assign/boost/assign/chain/pair_range_traits.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/pair_traits.hpp
- copied unchanged from r60528, /sandbox/statistics/detail/assign/boost/assign/chain/pair_traits.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/reference_traits.hpp
- copied unchanged from r60528, /sandbox/statistics/detail/assign/boost/assign/chain/reference_traits.hpp
sandbox/statistics/detail/assign/boost/assign/auto_size/chain/reference_wrapper_traits.hpp
- copied unchanged from r60528, /sandbox/statistics/detail/assign/boost/assign/chain/reference_wrapper_traits.hpp
Removed:
sandbox/statistics/detail/assign/boost/assign/chain/add_const.hpp
sandbox/statistics/detail/assign/boost/assign/chain/auto_convert.hpp
sandbox/statistics/detail/assign/boost/assign/chain/converter.hpp
sandbox/statistics/detail/assign/boost/assign/chain/is_reference_wrapper.hpp
sandbox/statistics/detail/assign/boost/assign/chain/mpl_check.hpp
sandbox/statistics/detail/assign/boost/assign/chain/pair_range_traits.hpp
sandbox/statistics/detail/assign/boost/assign/chain/pair_traits.hpp
sandbox/statistics/detail/assign/boost/assign/chain/reference_traits.hpp
sandbox/statistics/detail/assign/boost/assign/chain/reference_wrapper_traits.hpp
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/add_const.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/add_const.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,27 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::add_const.hpp //
-// //
-// (C) Copyright 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_DETAIL_AUTO_SIZE_CHAIN_ADD_CONST_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_AUTO_SIZE_CHAIN_ADD_CONST_ER_2010_HPP
-#include <boost/type_traits/add_const.hpp>
-
-namespace boost{
-namespace assign{
-namespace detail{
-
- // This is only for testing purposes
-
- template<typename Rng>
- typename boost::add_const<Rng>::type
- add_const(Rng& rng){ return rng; }
-
-}// detail
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/auto_convert.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/auto_convert.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,114 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::chain_auto_convert.hpp //
-// //
-// (C) Copyright 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_DETAIL_CHAIN_AUTO_CONVERT_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_CHAIN_AUTO_CONVERT_ER_2010_HPP
-#include <boost/typeof/typeof.hpp>
-#include <boost/range.hpp>
-#include <boost/range/chain.hpp>
-#include <boost/assign/chain/pair_range_traits.hpp>
-#include <boost/assign/chain/converter.hpp>
-
-// Usage:
-// chain_auto_convert(r1,r2)
-// returns a range that is formed by joining r1 and r2 whose reference is
-// convertible from either of those of r1 and r2.
-//
-// Requirements : if either of r1 or r1 contains reference wrappers (W) pointing
-// to some type T,
-// is_ref_wrapper<W>::type boolean constant
-// ref_wrapper_traits::meta::value_of<W>::type class
-// Bugs:
-// const ranges cause BAD_EXC_ACCESS
-
-namespace boost{
-namespace assign{
-namespace result_of{
-namespace chain_auto_convert{
-
- template<typename Conv,typename R1,typename R2>
- struct generic : detail::pair_range_traits::generic<Conv,R1,R2>{
- typedef detail::pair_range_traits::generic<Conv,R1,R2> super_;
- typedef typename super_::new_range1_ new_range1_;
- typedef typename super_::new_range2_ new_range2_;
- static new_range1_& new_range1;
- static new_range2_& new_range2;
- typedef BOOST_TYPEOF_TPL(
- boost::chain(
- new_range1,
- new_range2
- )
- ) type;
-
- // MSVC:
- //typedef BOOST_TYPEOF_NESTED_TYPEDEF_TPL(
- // nested,
- // boost::chain(conv_r1,conv_r2)
- //);
- //typedef typename nested::type type;
-
- static type call(R1& r1, R2& r2){
- super_::internal_check();
- typedef typename super_::caller1_ caller1_;
- typedef typename super_::caller2_ caller2_;
- new_range1_ nr1 = caller1_::call(r1);
- new_range2_ nr2 = caller2_::call(r2);
- return boost::chain(nr1,nr2);
- //boost::chain(caller1_::call(r1),caller2_::call(r2)); // Not!
- }
- };
-
- template<typename R1,typename R2>
- struct ignore_wrapper
- : chain_auto_convert::generic<detail::pair_traits::meta::ignore_wrapper,R1,R2>
- {};
-
- template<typename R1,typename R2>
- struct convert_wrapper
- : chain_auto_convert::generic<detail::pair_traits::meta::convert_wrapper,R1,R2>
- {};
-
-}// chain_auto_convert
-}// result_of
-
- // generic
- template<typename Conv,typename R1,typename R2>
- typename result_of::chain_auto_convert::generic<Conv,R1,R2>::type
- chain_auto_convert(R1& r1, R2& r2){
- typedef result_of::chain_auto_convert::generic<Conv,R1,R2> g_;
- return g_::call(r1,r2);
- }
-
- // ignore_wrapper
- template<typename R1,typename R2>
- typename result_of::chain_auto_convert::ignore_wrapper<R1,R2>::type
- chain_auto_convert_ignore_wrapper(R1& r1,R2& r2){
- typedef result_of::chain_auto_convert::ignore_wrapper<R1,R2> g_;
- return g_::call(r1,r2);
- }
-
- // convert_wrapper
- template<typename R1,typename R2>
- typename result_of::chain_auto_convert::convert_wrapper<R1,R2>::type
- chain_auto_convert_convert_wrapper(R1& r1,R2& r2){
- typedef result_of::chain_auto_convert::convert_wrapper<R1,R2> g_;
- return g_::call(r1,r2);
- }
-
- // default
- template<typename R1,typename R2>
- typename result_of::chain_auto_convert::convert_wrapper<R1,R2>::type
- chain_auto_convert(R1& r1,R2& r2){
- typedef result_of::chain_auto_convert::convert_wrapper<R1,R2> g_;
- return g_::call(r1,r2);
- }
-
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/converter.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/converter.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,88 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::converter.hpp //
-// //
-// (C) Copyright 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_DETAIL_CONVERTER_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_CONVERTER_ER_2010_HPP
-#include <boost/mpl/assert.hpp>
-#include <boost/range.hpp>
-#include <boost/range/adaptor/transformed.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-// Usage:
-// convert_range<T>(r)
-
-namespace boost{
-namespace assign{
-namespace detail{
-namespace functional{
-
-template<typename T>
-struct converter{
-
- converter(){}
-
- typedef T result_type;
-
- template<typename U>
- T operator()(U& arg)const{ return arg; }
-
- template<typename U>
- T operator()(const U& arg)const{ return arg; }
-
-};
-
-}// functional
-
-namespace result_of{
-
- template<typename T,typename Rng,
- typename U = typename boost::range_reference<Rng>::type>
- struct convert_range
- {
- typedef functional::converter<T> adaptor_;
- typedef boost::transform_range<adaptor_,Rng> type;
-
- static void internal_check(){
- BOOST_MPL_ASSERT((boost::is_convertible<U,T>));
- typedef boost::transform_range<adaptor_,Rng> new_range_;
- typedef typename boost::range_reference<new_range_>::type new_ref_;
- BOOST_MPL_ASSERT((boost::is_same<new_ref_,T>));
- }
- static type call(Rng& r){
- internal_check();
- return type(adaptor_(),r);
- }
- };
-
-}
-
- // Takes care of const Rng, I think.
-
- template<typename T,typename Rng>
- typename detail::result_of::convert_range<T,Rng>::type
- convert_range( Rng& r)
- {
- typedef detail::result_of::convert_range<T,Rng> caller_;
- return caller_::call( r );
- }
-
- template<typename T,typename Rng>
- inline typename detail::result_of
- ::convert_range<T,Rng>::type
- operator|( Rng& r, const detail::functional::converter<T>& f )
- {
- return convert_range<T>(r);
- }
-
-
-}// detail
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/is_reference_wrapper.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/is_reference_wrapper.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,25 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::is_ref_wrapper.hpp //
-// //
-// (C) Copyright 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_DETAIL_IS_REFERENCE_WRAPPER_IS_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_IS_REFERENCE_WRAPPER_IS_ER_2010_HPP
-#include <boost/mpl/bool.hpp>
-
-namespace boost{
-namespace assign{
-namespace detail{
-
- // specialize on T
- template<typename T>
- struct is_ref_wrapper : boost::mpl::bool_<false>{};
-
-}// detail
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/mpl_check.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/mpl_check.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,308 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::chain_mpl_check.hpp //
-// //
-// (C) Copyright 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_DETAIL_CHAIN_MPL_CHECK_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_CHAIN_MPL_CHECK_ER_2010_HPP
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/array.hpp>
-#include <boost/type_traits.hpp>
-#include <boost/assign/chain/reference_wrapper_traits.hpp>
-#include <boost/assign/chain/reference_traits.hpp>
-#include <boost/assign/chain/pair_traits.hpp>
-#include <boost/assign/chain/pair_range_traits.hpp>
-
-namespace boost{
-namespace assign{
-namespace detail{
-
-namespace chain_mpl_check{
- template<typename T> struct dummy_wrapper;
-}
-
-template<typename T>
-struct is_ref_wrapper<
- chain_mpl_check::dummy_wrapper<T>
- > : boost::mpl::bool_<true>{};
-
-namespace ref_wrapper_traits{
- template<typename T>
- struct tag_of<chain_mpl_check::dummy_wrapper<T> >{
- typedef tag::default_ type;
- };
-}// ref_wrapper_traits
-
-namespace chain_mpl_check{
-
- template<typename T>
- struct dummy_wrapper{
- operator T& ()const{ return *this->ref; }
- private:
- T* ref;
- };
-
- template<typename T,bool is = true>
- struct assert_cond{
- BOOST_MPL_ASSERT((T));
- };
-
- template<typename T>
- struct assert_cond<T,false>{
- BOOST_MPL_ASSERT_NOT((T));
- };
-
- template<typename T,typename U,bool is = true>
- struct assert_eq
- : assert_cond<boost::is_same<T,U>,is>{};
-
-namespace convert_wrapper{
- template<typename T>
- struct helper : reference_traits::convert_wrapper<T> {};
-
- template<typename T,typename U,bool is = true>
- struct assert_eq
- : chain_mpl_check::assert_eq<typename helper<T>::type,U,is>
- {};
-
-
-}
-namespace pair_traits{
-namespace convert_wrapper{
-
- template<typename T,typename U>
- struct helper :
- detail::pair_traits::meta::convert_wrapper::template apply<T,U> {};
-
- template<typename T,typename U,typename V,bool is = true>
- struct assert_eq
- : chain_mpl_check::assert_eq<typename helper<T,U>::type,V,is>
- {
- assert_eq(){
- typedef helper<T,U> helper_;
- helper_::internal_check();
- }
- };
-
-}// filter_ref_const
-}// pair_traits
-
-namespace pair_range_traits{
-
- template<typename R1,typename R2>
- struct helper : detail::pair_range_traits::convert_wrapper<R1,R2>{};
-
- template<typename R1,typename R2,typename T>
- struct assert_eq : chain_mpl_check::assert_eq<
- typename pair_range_traits::helper<R1,R2>::convertible_to_,
- T
- >{};
-
- template<typename R1,typename R2>
- void assert_checks()
- {
- typedef pair_range_traits::helper<R1,R2> helper_;
- helper_::internal_check();
- typedef typename helper_::convertible_to_traits traits_;
- BOOST_MPL_ASSERT_NOT((
- traits_::is_wrapper
- ));
- }
-
-
-}// pair_range_traits
-
-void compound()
-{
-
- typedef int v_;
- typedef const v_ cv_;
- typedef v_& r_;
- typedef cv_& cr_;
-
- typedef chain_mpl_check::dummy_wrapper<v_> wv_;
- typedef const wv_ cwv_;
- typedef wv_& rwv_;
- typedef cwv_& crwv_;
-
- typedef chain_mpl_check::dummy_wrapper<cv_> wcv_;
- typedef const wcv_ cwcv_;
- typedef wcv_& rwcv_;
- typedef cwcv_& crwcv_;
-
- const std::size_t n = 3;
- typedef boost::array<wv_,n> awv_;
- typedef boost::array<cwv_,n> acwv_;
- typedef boost::array<wcv_,n> awcv_;
- typedef boost::array<cwcv_,n> acwcv_;
-
- typedef const awv_ cawv_;
- typedef const acwv_ cacwv_;
- typedef const awcv_ cawcv_;
- typedef const acwcv_ cacwcv_;
-
- convert_wrapper::assert_eq< v_, v_ >();
- convert_wrapper::assert_eq< cv_, cv_ >();
- convert_wrapper::assert_eq< r_, r_ >();
- convert_wrapper::assert_eq< cr_, cr_ >();
-
- convert_wrapper::assert_eq< wv_, r_ >();
- convert_wrapper::assert_eq< wcv_, cr_ >();
-
- convert_wrapper::assert_eq< cwv_, r_ >();
- convert_wrapper::assert_eq< cwcv_, cr_ >();
-
- convert_wrapper::assert_eq< rwv_, r_ >();
- convert_wrapper::assert_eq< rwcv_, cr_ >();
-
- convert_wrapper::assert_eq< crwv_, r_ >();
- convert_wrapper::assert_eq< crwcv_, cr_ >();
-
- namespace pt = pair_traits;
- pt::convert_wrapper::assert_eq< v_, v_, v_ >();
- pt::convert_wrapper::assert_eq< v_, cv_, cv_ >();
- pt::convert_wrapper::assert_eq< v_, r_, v_ >();
- pt::convert_wrapper::assert_eq< v_, cr_, cv_ >();
- pt::convert_wrapper::assert_eq< v_, wv_, v_ >();
- pt::convert_wrapper::assert_eq< v_, wcv_, cv_ >();
- pt::convert_wrapper::assert_eq< v_, cwv_, v_ >();
- pt::convert_wrapper::assert_eq< v_, cwcv_, cv_ >();
- pt::convert_wrapper::assert_eq< v_, rwv_, v_ >();
- pt::convert_wrapper::assert_eq< v_, rwcv_, cv_ >();
- pt::convert_wrapper::assert_eq< v_, crwv_, v_ >();
- pt::convert_wrapper::assert_eq< v_, crwcv_, cv_ >();
-
- pt::convert_wrapper::assert_eq< cv_, cv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, r_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, cr_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, wv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, wcv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, cwv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, cwcv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, rwv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, rwcv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, crwv_, cv_ >();
- pt::convert_wrapper::assert_eq< cv_, crwcv_, cv_ >();
-
- pt::convert_wrapper::assert_eq< r_, r_, r_ >();
- pt::convert_wrapper::assert_eq< r_, cr_, cr_ >();
- pt::convert_wrapper::assert_eq< r_, wv_, r_ >();
- pt::convert_wrapper::assert_eq< r_, wcv_, cr_ >();
- pt::convert_wrapper::assert_eq< r_, cwv_, r_ >();
- pt::convert_wrapper::assert_eq< r_, cwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< r_, rwv_, r_ >();
- pt::convert_wrapper::assert_eq< r_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< r_, crwv_, r_ >();
- pt::convert_wrapper::assert_eq< r_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< cr_, cr_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, wv_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, wcv_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, cwv_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, cwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, rwv_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, crwv_, cr_ >();
- pt::convert_wrapper::assert_eq< cr_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< wv_, wv_, r_ >();
- pt::convert_wrapper::assert_eq< wv_, wcv_, cr_ >();
- pt::convert_wrapper::assert_eq< wv_, cwv_, r_ >();
- pt::convert_wrapper::assert_eq< wv_, cwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< wv_, rwv_, r_ >();
- pt::convert_wrapper::assert_eq< wv_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< wv_, crwv_, r_ >();
- pt::convert_wrapper::assert_eq< wv_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< wcv_, wcv_, cr_ >();
- pt::convert_wrapper::assert_eq< wcv_, cwv_, cr_ >();
- pt::convert_wrapper::assert_eq< wcv_, cwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< wcv_, rwv_, cr_ >();
- pt::convert_wrapper::assert_eq< wcv_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< wcv_, crwv_, cr_ >();
- pt::convert_wrapper::assert_eq< wcv_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< cwv_, cwv_, r_ >();
- pt::convert_wrapper::assert_eq< cwv_, cwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< cwv_, rwv_, r_ >();
- pt::convert_wrapper::assert_eq< cwv_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< cwv_, crwv_, r_ >();
- pt::convert_wrapper::assert_eq< cwv_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< cwcv_, cwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< cwcv_, rwv_, cr_ >();
- pt::convert_wrapper::assert_eq< cwcv_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< cwcv_, crwv_, cr_ >();
- pt::convert_wrapper::assert_eq< cwcv_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< rwv_, rwv_, r_ >();
- pt::convert_wrapper::assert_eq< rwv_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< rwv_, crwv_, r_ >();
- pt::convert_wrapper::assert_eq< rwv_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< rwcv_, rwcv_, cr_ >();
- pt::convert_wrapper::assert_eq< rwcv_, crwv_, cr_ >();
- pt::convert_wrapper::assert_eq< rwcv_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< crwv_, crwv_, r_ >();
- pt::convert_wrapper::assert_eq< crwv_, crwcv_, cr_ >();
-
- pt::convert_wrapper::assert_eq< crwv_, crwcv_, cr_ >();
-
- namespace prt = pair_range_traits;
- prt::assert_checks<awv_,awv_>();
- prt::assert_checks<awv_,acwv_>();
- prt::assert_checks<awv_,awcv_>();
- prt::assert_checks<awv_,acwcv_>();
- prt::assert_checks<awv_,cawv_>();
- prt::assert_checks<awv_,cacwv_>();
- prt::assert_checks<awv_,cawcv_>();
- prt::assert_checks<awv_,cacwcv_>();
-
- prt::assert_checks<acwv_,acwv_>();
- prt::assert_checks<acwv_,awcv_>();
- prt::assert_checks<acwv_,acwcv_>();
- prt::assert_checks<acwv_,cawv_>();
- prt::assert_checks<acwv_,cacwv_>();
- prt::assert_checks<acwv_,cawcv_>();
- prt::assert_checks<acwv_,cacwcv_>();
-
- prt::assert_checks<awcv_,awcv_>();
- prt::assert_checks<awcv_,acwcv_>();
- prt::assert_checks<awcv_,cawv_>();
- prt::assert_checks<awcv_,cacwv_>();
- prt::assert_checks<awcv_,cawcv_>();
- prt::assert_checks<awcv_,cacwcv_>();
-
- prt::assert_checks<acwcv_,acwcv_>();
- prt::assert_checks<acwcv_,cawv_>();
- prt::assert_checks<acwcv_,cacwv_>();
- prt::assert_checks<acwcv_,cawcv_>();
- prt::assert_checks<acwcv_,cacwcv_>();
-
- prt::assert_checks<cawv_,cawv_>();
- prt::assert_checks<cawv_,cacwv_>();
- prt::assert_checks<cawv_,cawcv_>();
- prt::assert_checks<cawv_,cacwcv_>();
-
- prt::assert_checks<cacwv_,cacwv_>();
- prt::assert_checks<cacwv_,cawcv_>();
- prt::assert_checks<cacwv_,cacwcv_>();
-
- prt::assert_checks<cawcv_,cawcv_>();
- prt::assert_checks<cawcv_,cacwcv_>();
-
- prt::assert_checks<cacwcv_,cacwcv_>();
-
-}
-
-}// chain_mpl_check
-}// detail
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/pair_range_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/pair_range_traits.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,68 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::pair_range_traits.hpp //
-// //
-// (C) Copyright 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_DETAIL_PAIR_RANGE_TRAITS_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_PAIR_RANGE_TRAITS_ER_2010_HPP
-#include <boost/range.hpp>
-#include <boost/assign/chain/pair_traits.hpp>
-#include <boost/assign/chain/converter.hpp>
-#include <boost/assign/chain/is_reference_wrapper.hpp>
-
-// Maps (R1,R2) to a reference that is convertible to by each elem of either.
-
-namespace boost{
-namespace assign{
-namespace detail{
-namespace pair_range_traits{
-
- template<typename Conv,typename R1,typename R2>
- struct generic{
- typedef typename boost::range_reference<R1>::type ref1_;
- typedef typename boost::range_reference<R2>::type ref2_;
- typedef typename
- Conv::template apply<ref1_,ref2_>::type convertible_to_;
-
- typedef detail::result_of::convert_range<convertible_to_,R1> caller1_;
- typedef detail::result_of::convert_range<convertible_to_,R2> caller2_;
-
- typedef typename caller1_::type new_range1_;
- typedef typename caller2_::type new_range2_;
-
- static void internal_check(){
- caller1_::internal_check();
- caller1_::internal_check();
- }
-
- struct convertible_to_traits{
- typedef typename boost::remove_reference<convertible_to_>::type c_;
- typedef typename boost::remove_const<c_>::type val_;
- typedef detail::is_ref_wrapper<val_> is_wrapper;
-
- // Expected : (!is_wrapper::value), if Conv = convert_wrapper,
- // usually, but not necessarilly, for ex if a ref-wrapper point to
- // another ref-wrapper.
- };
-
- };
-
- template<typename R1,typename R2>
- struct ignore_wrapper
- : pair_range_traits::generic<pair_traits::meta::ignore_wrapper,R1,R2>
- {};
-
- template<typename R1,typename R2>
- struct convert_wrapper
- : pair_range_traits::generic<pair_traits::meta::convert_wrapper,R1,R2>
- {};
-
-}// pair_range_traits
-}// detail
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/pair_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/pair_traits.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,116 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::pair_traits.hpp //
-// //
-// (C) Copyright 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_DETAIL_PAIR_TRAITS_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_PAIR_TRAITS_ER_2010_HPP
-#include <utility>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/assign/chain/reference_traits.hpp>
-
-// These traits maps T and U, each of which may identify a reference wrapper,
-// to V such that
-// V v1 = t; V v2 = u;
-// is a valid expression. U and T may be references or reference wrappers
-
-namespace boost{
-namespace assign{
-namespace detail{
-namespace pair_traits{
-
- template<typename D>
- struct add_check_symmetry{
- static void check_symmetry()
- {
- typedef typename D::type type;
- typedef typename D::symmetric::type sym_type;
- BOOST_MPL_ASSERT((boost::is_same<type,sym_type>));
- }
- };
-
- template<typename T,typename U>
- struct use_const : boost::mpl::or_<
- typename reference_traits::is_const<T>::type,
- typename reference_traits::is_const<U>::type
- >{};
-
- template<typename T,typename U>
- struct use_reference : boost::mpl::and_<
- typename boost::is_reference<T>::type,
- typename boost::is_reference<U>::type
- >{};
-
- template<typename T,typename U>
- struct filter_ref_const : add_check_symmetry< filter_ref_const<T,U> >{
- typedef typename pair_traits::use_reference<T,U>::type use_ref_;
- typedef typename pair_traits::use_const<T,U>::type use_const_;
- template<typename F,typename S>
- struct pair{
- typedef F first_type;
- typedef S second_type;
- };
- template<typename V>
- struct local
- : reference_traits::filter_ref_const<
- use_ref_::value,use_const_::value,V>{};
- typedef typename local<T>::type first_;
- typedef typename local<U>::type second_;
- typedef pair<first_,second_> type;
-
- struct symmetric : filter_ref_const<U,T>{};
- };
-
- template<typename T,typename U>
- struct ignore_wrapper : add_check_symmetry< ignore_wrapper<T,U> >
- {
- typedef typename pair_traits::filter_ref_const<T,U>::type traits_;
- typedef typename traits_::first_type first_;
- typedef typename traits_::second_type second_;
- typedef
- typename boost::is_convertible<first_,second_>::type use_second_;
- typedef typename
- boost::mpl::if_c<use_second_::value,second_,first_>::type type;
-
- struct symmetric : ignore_wrapper<U,T>{};
- static void internal_check(){
- typedef add_check_symmetry< ignore_wrapper<T,U> > super_;
- super_::check_symmetry();
- BOOST_MPL_ASSERT((boost::is_convertible<first_,type>));
- BOOST_MPL_ASSERT((boost::is_convertible<second_,type>));
- }
- };
-
- template<typename T,typename U>
- struct convert_wrapper : pair_traits::ignore_wrapper<
- typename reference_traits::convert_wrapper<T>::type,
- typename reference_traits::convert_wrapper<U>::type
- >{};
-
- namespace meta{
-
- template<template<typename,typename> class M>
- struct helper{
- template<typename T,typename U>
- struct apply : M<T,U>{};
- };
- struct ignore_wrapper : meta::helper<pair_traits::ignore_wrapper>{};
- struct convert_wrapper : meta::helper<pair_traits::convert_wrapper>{};
- }
-
-}// pair_traits
-}// detail
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/reference_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/reference_traits.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,70 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::reference_traits.hpp //
-// //
-// (C) Copyright 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_DETAIL_REFERENCE_TRAITS_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_REFERENCE_TRAITS_ER_2010_HPP
-#include <utility>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/assign/chain/is_reference_wrapper.hpp>
-#include <boost/assign/chain/reference_wrapper_traits.hpp>
-
-// Map T, a reference or a reference_wrapper, to a convertible type.
-
-namespace boost{
-namespace assign{
-namespace detail{
-namespace reference_traits{
-
- template<typename T>
- struct remove_cref : boost::remove_const<
- typename boost::remove_reference<T>::type
- >{};
-
- template<typename T>
- struct is_const : boost::is_const<
- typename boost::remove_reference<T>::type
- >{};
-
- template<bool use_ref,bool use_const,typename T>
- struct filter_ref_const{
- typedef typename reference_traits::remove_cref<T>::type value_;
- typedef typename boost::mpl::eval_if_c<
- use_const,
- boost::add_const<value_>,
- boost::mpl::identity<value_>
- >::type const_;
- typedef typename boost::mpl::eval_if_c<
- use_ref,
- boost::add_reference<const_>,
- boost::mpl::identity<const_>
- >::type type;
- };
-
- template<typename T>
- struct convert_wrapper{
- typedef typename reference_traits::remove_cref<T>::type value_;
- typedef typename detail::is_ref_wrapper<value_>::type is_rw_;
- typedef typename boost::mpl::eval_if_c<
- is_rw_::value,
- ref_wrapper_traits::convertible_to<value_>,
- boost::mpl::identity<T>
- >::type type;
- };
-
-}// reference_traits
-}// detail
-}// assign
-}// boost
-
-#endif
Deleted: sandbox/statistics/detail/assign/boost/assign/chain/reference_wrapper_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/chain/reference_wrapper_traits.hpp 2010-03-12 20:56:13 EST (Fri, 12 Mar 2010)
+++ (empty file)
@@ -1,80 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-// assign::detail::ref_wrapper_traits.hpp //
-// //
-// (C) Copyright 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_DETAIL_REFERENCE_WRAPPER_TRAITS_ER_2010_HPP
-#define BOOST_ASSIGN_DETAIL_REFERENCE_WRAPPER_TRAITS_ER_2010_HPP
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits.hpp>
-
-namespace boost{
-namespace assign{
-namespace detail{
-namespace ref_wrapper_traits{
-
- namespace tag{
- struct default_{};
- }
-
- // specialize for each T
- template<typename T>
- struct tag_of{};
-
- template<typename T,template<typename> class M>
- struct helper : M<typename ref_wrapper_traits::tag_of<T>::type>
- ::template apply<T>{};
-
- namespace meta{
- // specialize on Tag
- template<typename Tag>
- struct value_of{
- // template<typename T> struct apply;
- };
-
- namespace impl{
- template<typename T> struct value_of{};
- template<typename T,template<typename> class W>
- struct value_of<W<T> >{ typedef T type; };
- }
-
- template<>
- struct value_of<ref_wrapper_traits::tag::default_>
- {
- template<typename T>
- struct apply : impl::value_of<T>{};
- };
- }
-
- template<typename T>
- struct value_of
- : ref_wrapper_traits::helper<T,meta::value_of>{};
-
- namespace meta{
- template<typename Tag>
- struct convertible_to{
- template<typename T> struct apply{};
- };
- template<>
- template<typename T>
- struct convertible_to<tag::default_>::apply<T>
- : boost::add_reference<
- typename ref_wrapper_traits::value_of<T>::type
- >
- {};
- }
-
- template<typename T>
- struct convertible_to
- : ref_wrapper_traits::helper<T,meta::convertible_to>{};
-
-}// ref_wrapper_traits
-}// detail
-}// assign
-}// boost
-
-#endif
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