|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r70936 - in sandbox/assign_v2: boost/assign/v2 boost/assign/v2/conversion boost/assign/v2/deque boost/assign/v2/detail boost/assign/v2/detail/functor boost/assign/v2/detail/traits boost/assign/v2/detail/traits/aux_ boost/assign/v2/include boost/assign/v2/include/logical_and boost/assign/v2/include/macro boost/assign/v2/interpreter boost/assign/v2/option boost/assign/v2/option/modifier boost/assign/v2/pipe boost/assign/v2/ref/array boost/assign/v2/ref/aux_/list boost/assign/v2/ref/include libs/assign/v2 libs/assign/v2/src libs/assign/v2/test libs/assign/v2/test/option libs/assign/v2/test/put libs/assign/v2/test/unit_testing
From: erwann.rogard_at_[hidden]
Date: 2011-04-03 11:10:25
Author: e_r
Date: 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
New Revision: 70936
URL: http://svn.boost.org/trac/boost/changeset/70936
Log:
upd assign_v2
Text files modified:
sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp | 4
sandbox/assign_v2/boost/assign/v2/csv.hpp | 51 +--------------
sandbox/assign_v2/boost/assign/v2/deque/deque.hpp | 2
sandbox/assign_v2/boost/assign/v2/detail/functor.hpp | 1
sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp | 2
sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp | 21 ++++--
sandbox/assign_v2/boost/assign/v2/detail/speed.hpp | 2
sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp | 8 ++
sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp | 15 ++++
sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp | 21 +++---
sandbox/assign_v2/boost/assign/v2/include.hpp | 33 ---------
sandbox/assign_v2/boost/assign/v2/include/_chain.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_convert.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_csv_put.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_data.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_insert.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_push.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/csv.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/include/macro.hpp | 16 ----
sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp | 16 ----
sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp | 16 ----
sandbox/assign_v2/boost/assign/v2/include/put.hpp | 2
sandbox/assign_v2/boost/assign/v2/include/ref.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/interpreter.hpp | 2
sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp | 28 ++++----
sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp | 8 +-
sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp | 21 ++++-
sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp | 3
sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp | 1
sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp | 108 ++++++++++++++++-----------------
sandbox/assign_v2/boost/assign/v2/option/list.hpp | 89 ++++++++++++++++++++++-----
sandbox/assign_v2/boost/assign/v2/option/modifier.hpp | 3
sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp | 16 +++-
sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp | 11 --
sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp | 26 -------
sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp | 7 -
sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp | 3
sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp | 2
sandbox/assign_v2/boost/assign/v2/pipe.hpp | 2
sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp | 19 ++++-
sandbox/assign_v2/boost/assign/v2/put.hpp | 129 ---------------------------------------
sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp | 6
sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp | 2
sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp | 2
sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp | 15 ----
sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp | 15 ----
sandbox/assign_v2/libs/assign/v2/src/main.cpp | 2
sandbox/assign_v2/libs/assign/v2/test/conversion.cpp | 10 +-
sandbox/assign_v2/libs/assign/v2/test/csv.cpp | 23 ++----
sandbox/assign_v2/libs/assign/v2/test/option.cpp | 2
sandbox/assign_v2/libs/assign/v2/test/option/data.cpp | 21 +++---
sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp | 21 +++--
sandbox/assign_v2/libs/assign/v2/test/option/list.cpp | 7 -
sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp | 10 +-
sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp | 9 +
sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp | 25 ++++---
sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp | 76 +++++++++++-----------
sandbox/assign_v2/libs/assign/v2/test/put/put.cpp | 126 ++++++++++++++++++++++----------------
sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp | 32 ---------
sandbox/assign_v2/libs/assign/v2/tutorial.cpp | 15 ++--
68 files changed, 476 insertions(+), 871 deletions(-)
Modified: sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/conversion/convert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,7 +10,7 @@
#ifndef BOOST_ASSIGN_V2_CONVERSION_CONVERT_ER_2010_HPP
#define BOOST_ASSIGN_V2_CONVERSION_CONVERT_ER_2010_HPP
#include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/range/algorithm/for_each.hpp>
namespace boost{
@@ -73,7 +73,7 @@
}//result_of
template<typename C>
-conversion_aux::convert_adapter<C> _convert()/*<-*/
+conversion_aux::convert_adapter<C> convert()/*<-*/
{
return conversion_aux::convert_adapter<C>();
}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
Modified: sandbox/assign_v2/boost/assign/v2/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/csv.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -30,48 +30,12 @@
namespace boost{
namespace assign{
namespace v2{
-namespace csv_aux{
-
- template<typename F, typename T>
- struct unary_result
- {
- static F f;
- static T t;
-#ifdef BOOST_MSVC
- BOOST_TYPEOF_NESTED_TYPEDEF_TPL(nested, f( t ) )
- typedef typename nested::type type;
-#else
- typedef BOOST_TYPEOF_TPL( f( t ) ) type;
-#endif
-
- };
-
- template<typename F>
- struct result
- {
-
- typedef F state_;
-
- template<typename Vec>
- struct apply : ::boost::mpl::fold<
- Vec,
- state_,
- unary_result< ::boost::mpl::_1, ::boost::mpl::_2>
- >{};
-
- };
-
-}// csv_aux
//[syntax_csv
namespace result_of{
- template<typename F, typename V>
+ template<typename F>
struct csv/*<-*/
- : ::boost::mpl::apply1<
- csv_aux::result<F>,
- V
- >
- {}/*->*/;
+ { typedef F type; }/*->*/;
}// nth_result_of
//<-
@@ -88,8 +52,7 @@
}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
template<typename F, typename T, typename... Args>
- typename result_of::csv<F const&,
- typename ::boost::mpl::detail::variadic_vector<T, Args...>::type
+ typename result_of::csv<F const&>::type
>::type
csv( F const& functor, T&& t, Args&&... args )/*<-*/
{
@@ -103,9 +66,7 @@
#define BOOST_ASSIGN_V2_MACRO3(z, N, data)\
\
template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- typename result_of::csv<F const&, \
- ::boost::mpl::vector<BOOST_PP_ENUM(N, BOOST_ASSIGN_V2_MACRO1, &)>\
- >::type\
+ typename result_of::csv<F const&>::type\
csv( \
F const& functor\
BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(N, T, & _)\
@@ -115,9 +76,7 @@
}\
\
template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(N, typename T)>\
- typename result_of::csv<F const&,\
- ::boost::mpl::vector<BOOST_PP_ENUM(N, BOOST_ASSIGN_V2_MACRO1, const &)>\
- >::type\
+ typename result_of::csv<F const&>::type\
csv( \
F const& functor\
BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(N, T, const & _)\
Modified: sandbox/assign_v2/boost/assign/v2/deque/deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/deque/deque.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/deque/deque.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -173,7 +173,7 @@
template<typename T>
typename result_of::deque<T>::type
- deque( keyword_aux::nil )/*<-*/
+ deque( nil_ )/*<-*/
{
return typename result_of::deque<T>::type();
}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
Modified: sandbox/assign_v2/boost/assign/v2/detail/functor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,6 +10,7 @@
#ifndef BOOST_ASSIGN_V2_DETAIL_FUNCTOR_ER_2010_HPP
#define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_ER_2010_HPP
#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
+#include <boost/assign/v2/detail/functor/iterate.hpp>
#include <boost/assign/v2/detail/functor/pair.hpp>
#include <boost/assign/v2/detail/functor/value.hpp>
Modified: sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor/value.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -28,7 +28,7 @@
//syntax_detail_functor_value
namespace functor_aux{
- template<typename T = keyword_aux::nil>
+ template<typename T = nil_>
class value/*<-*/
#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
: public functor_aux::crtp_unary_and_up<
Modified: sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -16,23 +16,30 @@
namespace v2{
//[syntax_detail_keyword
namespace keyword_aux{
-
struct ignore{
ignore(){}
template<typename Anything> ignore(Anything){}
};
+ struct element/*<-*/{}/*->*/;
struct key/*<-*/{}/*->*/;
struct nil/*<-*/{}/*->*/;
struct use_default/*<-*/{}/*->*/;
struct value/*<-*/{}/*->*/;
-}// keyword_aux
+}//keyword_aux
+ typedef keyword_aux::ignore ignore_;
+ typedef keyword_aux::element element_;
+ typedef keyword_aux::key key_;
+ typedef keyword_aux::nil nil_;
+ typedef keyword_aux::use_default use_default_;
+ typedef keyword_aux::value value_;
/*<-*/namespace{/*->*/
- const keyword_aux::ignore _ignore/*<-*/ = keyword_aux::ignore()/*->*/;
- const keyword_aux::key _key/*<-*/ = keyword_aux::key()/*->*/;
- const keyword_aux::nil _nil/*<-*/ = keyword_aux::nil()/*->*/;
- const keyword_aux::use_default _use_default/*<-*/ = keyword_aux::use_default()/*->*/;
- const keyword_aux::value _value/*<-*/ = keyword_aux::value()/*->*/;
+ const ignore_ _ignore/*<-*/ = ignore_()/*->*/;
+ const element_ _element/*<-*/ = element_()/*->*/;
+ const key_ _key/*<-*/ = key_()/*->*/;
+ const nil_ _nil/*<-*/ = nil_()/*->*/;
+ const use_default_ _use_default/*<-*/ = use_default_()/*->*/;
+ const value_ _value/*<-*/ = value_()/*->*/;
/*<-*/}/*->*/
//]
}// v2
Modified: sandbox/assign_v2/boost/assign/v2/detail/speed.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/speed.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/speed.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -21,7 +21,7 @@
#include <boost/assign/list_inserter.hpp>
#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/assign/v2/deque.hpp>
#include <boost/assign/v2/pipe/csv_put.hpp>
#include <boost/assign/v2/ref/array/array.hpp>
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/fwd_container.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -43,6 +43,14 @@
// http://www.boost.org/doc/libs/release/libs/circular_buffer/index.html
template<typename T, typename Alloc> class circular_buffer;
+namespace detail{
+namespace multi_array{
+
+ struct multi_array_base;
+
+}// multi_array
+}// detail
+
template <
class Key,
class Hash,
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -15,6 +15,7 @@
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/seq.hpp>
#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/is_base_of.hpp>
#include <boost/type_traits/detail/yes_no_type.hpp>
namespace boost{
@@ -42,6 +43,13 @@
template<typename C>
struct value_is_map : ::boost::mpl::false_{};
+ typedef ::boost::detail::multi_array::multi_array_base multi_array_base_;
+
+ template<typename C>
+ struct value_is_multi_array
+ : boost::is_base_of<multi_array_base_, C>
+ {};
+
}// container_aux
#define BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORY(SeqPar, IsCategory, Identifier, SeqArg)\
@@ -69,7 +77,7 @@
/**/
BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORIES(
- (typename T)( std::size_t sz), (is_array),
+ (typename T)( std::size_t sz ), (is_array),
boost::array, (T)(sz)
)
BOOST_ASSIGN_V2_TRAITS_CONTAINER_CATEGORIES(
@@ -109,6 +117,11 @@
struct value_key{ typedef typename C::key_type type; };
template<
+ typename C // Ptr or value multi-array
+ >
+ struct value_element{ typedef typename C::element type; };
+
+ template<
typename C // Ptr or value container
>
struct value_value{ typedef typename C::value_type type; };
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -37,7 +37,7 @@
>
{};
-// DATA-MEMBER
+// ACCESS
template<typename C>
struct key : through_value_container<value_key, C>{};
@@ -48,22 +48,18 @@
template<typename C>
struct value : through_value_container<value_value, C>{};
-// STORAGE
+ template<
+ typename C // Multi-array
+ >
+ struct element : through_value_container<value_element, C>{};
- template<typename C>
- struct is_ptr_container : ::boost::mpl::not_<
- boost::is_same<C, typename to_value_container<C>::type>
- >{};
-
-// MEMBERS
+// PREDICATE
template<typename C>
struct has_push_deduced_value
: through_value_container<value_has_push_deduced_value, C>
{};
-// CATEGORY
-
template<typename C> struct is_array
: through_value_container<value_is_array, C>
{};
@@ -88,6 +84,11 @@
{};
template<typename C>
+ struct is_ptr_container : ::boost::mpl::not_<
+ boost::is_same<C, typename to_value_container<C>::type>
+ >{};
+
+ template<typename C>
struct is_sorted
: through_value_container<value_is_sorted, C>
{};
Modified: sandbox/assign_v2/boost/assign/v2/include.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,32 +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_INCLUDE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_ER_2010_HPP
-#include <boost/assign/v2/include/_chain.hpp>
-#include <boost/assign/v2/include/_convert.hpp>
-#include <boost/assign/v2/include/_csv_put.hpp>
-#include <boost/assign/v2/include/_data.hpp>
-#include <boost/assign/v2/include/_insert.hpp>
-#include <boost/assign/v2/include/_iterate.hpp>
-#include <boost/assign/v2/include/_key.hpp>
-#include <boost/assign/v2/include/_mapped.hpp>
-#include <boost/assign/v2/include/_push.hpp>
-#include <boost/assign/v2/include/_push_back.hpp>
-#include <boost/assign/v2/include/_push_front.hpp>
-#include <boost/assign/v2/include/_repeat.hpp>
-#include <boost/assign/v2/include/converter.hpp>
-#include <boost/assign/v2/include/csv.hpp>
-#include <boost/assign/v2/include/csv_deque.hpp>
-#include <boost/assign/v2/include/deque.hpp>
-#include <boost/assign/v2/include/logical_and.hpp>
-#include <boost/assign/v2/include/macro.hpp>
-#include <boost/assign/v2/include/ref.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_chain.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_chain.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__CHAIN_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__CHAIN_ER_2010_HPP
-#include <boost/assign/v2/chain/chain.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__CHAIN_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_convert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_convert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__CONVERT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__CONVERT_ER_2010_HPP
-#include <boost/assign/v2/conversion/convert.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__CONVERT_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_csv_put.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__CSV_PUT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__CSV_PUT_ER_2010_HPP
-#include <boost/assign/v2/pipe/csv_put.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__CSV_PUT_ER_2010_HPP
\ No newline at end of file
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_data.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_data.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_data.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__DATA_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__DATA_ER_2010_HPP
-#include <boost/assign/v2/option/data_generator.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__DATA_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_insert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_insert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_insert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__INSERT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__INSERT_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__INSERT_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_iterate.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__ITERATE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__ITERATE_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/iterate.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__ITERATE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_mapped.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__MAPPED_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__MAPPED_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/mapped.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__MAPPED_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_push.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_push.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_push.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__PUSH_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__PUSH_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__PUSH_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_push_back.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__PUSH_BACK_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__PUSH_BACK_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__PUSH_BACK_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_push_front.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__PUSH_FRONT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__PUSH_FRONT_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__PUSH_FRONT_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/_repeat.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE__REPEAT_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE__REPEAT_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/repeat.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE__REPEAT_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/csv.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/csv.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_CSV_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_CSV_ER_2010_HPP
-#include <boost/assign/v2/csv.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_CSV_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/logical_and.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_LOGICAL_AND_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_ER_2010_HPP
-#include <boost/assign/v2/include/logical_and/chain.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/logical_and/chain.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
-#include <boost/assign/v2/chain/logical_and.hpp>
-
-#endif //BOOST_ASSIGN_V2_INCLUDE_LOGICAL_AND_CHAIN_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/macro.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/macro.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/macro.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,15 +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_INCLUDE_MACRO_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_MACRO_ER_2010_HPP
-#include <boost/assign/v2/include/macro/modifier.hpp>
-#include <boost/assign/v2/include/macro/std_modifier.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_MACRO_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/macro/modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,15 +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_INCLUDE_MACRO_MODIFIER_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_MACRO_MODIFIER_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/framework.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_MACRO_MODIFIER_ER_2010_HPP
-
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/macro/std_modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,15 +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_INCLUDE_MACRO_STD_MODIFIER_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_MACRO_STD_MODIFIER_ER_2010_HPP
-#include <boost/assign/v2/option/modifier/std.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_MACRO_STD_MODIFIER_ER_2010_HPP
-
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/include/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/put.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,6 +9,6 @@
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_ASSIGN_V2_INCLUDE_PUT_ER_2010_HPP
#define BOOST_ASSIGN_V2_INCLUDE_PUT_ER_2010_HPP
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#endif // BOOST_ASSIGN_V2_INCLUDE_PUT_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/include/ref.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/include/ref.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/include/ref.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +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_INCLUDE_REF_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INCLUDE_REF_ER_2010_HPP
-#include <boost/assign/v2/ref/include.hpp>
-
-#endif // BOOST_ASSIGN_V2_INCLUDE_REF_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/interpreter.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,6 +9,8 @@
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_ASSIGN_V2_INTERPRETER_ER_2010_HPP
#define BOOST_ASSIGN_V2_INTERPRETER_ER_2010_HPP
+#include <boost/assign/v2/interpreter/as_arg_list.hpp>
+#include <boost/assign/v2/interpreter/data_generator.hpp>
#include <boost/assign/v2/interpreter/crtp.hpp>
#include <boost/assign/v2/interpreter/modifier.hpp>
#include <boost/assign/v2/interpreter/replace.hpp>
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/crtp.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -7,8 +7,8 @@
// Boost Software License, Version 1.0. (See accompanying file //
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_INTERPRETER_ADAPTER_CRTP_ER_2010_HPP
-#define BOOST_ASSIGN_V2_INTERPRETER_ADAPTER_CRTP_ER_2010_HPP
+#ifndef BOOST_ASSIGN_V2_INTERPRETER_CRTP_ER_2010_HPP
+#define BOOST_ASSIGN_V2_INTERPRETER_CRTP_ER_2010_HPP
#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
#include <boost/assign/v2/detail/pp/forward.hpp>
#include <boost/assign/v2/detail/pp/ignore.hpp>
@@ -116,10 +116,10 @@
};
- template<typename C, typename F, typename ModifierTag, typename D>
+ template<typename C, typename F, typename MTag, typename D>
struct ConceptDerivedInterpreter2 : ConceptDerivedInterpreter1<C, D>{
- typedef interpreter_aux::interpreter_modifier<ModifierTag> modifier_;
+ typedef interpreter_aux::interpreter_modifier<MTag> modifier_;
BOOST_CONCEPT_USAGE(ConceptDerivedInterpreter2)
{
@@ -136,17 +136,17 @@
template<
typename C // Container,
, typename F // Data generator
- , typename ModifierTag // Modifier tag
- , typename DataTag // Data tag
+ , typename MTag // Modifier tag
+ , typename DTag // Data tag
, typename D // Derived
>
class interpreter_crtp
//<-
: public data_gen_holder<F>
- , public modifier_holder<ModifierTag>
+ , public modifier_holder<MTag>
#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
, public functor_aux::crtp_unary_and_up<
- interpreter_crtp<C, F, ModifierTag, DataTag, D>,
+ interpreter_crtp<C, F, MTag, DTag, D>,
::boost::mpl::always< D const& >
>
#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
@@ -160,7 +160,7 @@
protected:
typedef data_gen_holder<F> data_gen_holder_;
- typedef modifier_holder<ModifierTag> modifier_holder_;
+ typedef modifier_holder<MTag> modifier_holder_;
//->
public:
@@ -239,7 +239,7 @@
template<typename T>
void check_modifier( BOOST_ASSIGN_V2_FORWARD_PARAM(T, t) )const
{
- typedef ConceptModifier<ModifierTag, DataTag, C,
+ typedef ConceptModifier<MTag, DTag, C,
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
T&&
#else
@@ -259,7 +259,7 @@
this->modifier.impl(
this->derived().container(),
std::forward<T>( t ),
- DataTag()
+ DTag()
);
return this->derived();
}
@@ -268,7 +268,7 @@
result_type modify(T& t)const
{
check_modifier( t );
- this->modifier.impl( this->derived().container(), t, DataTag() );
+ this->modifier.impl( this->derived().container(), t, DTag() );
return this->derived();
}
@@ -276,7 +276,7 @@
result_type modify(T const& t)const
{
check_modifier( t );
- this->modifier.impl( this->derived().container(), t, DataTag() );
+ this->modifier.impl( this->derived().container(), t, DTag() );
return this->derived();
}
@@ -291,4 +291,4 @@
}// assign
}// boost
-#endif // BOOST_ASSIGN_V2_INTERPRETER_ADAPTER_CRTP_ER_2010_HPP
+#endif // BOOST_ASSIGN_V2_INTERPRETER_CRTP_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,9 +9,9 @@
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_ASSIGN_V2_INTERPRETER_DATA_ER_2010_HPP
#define BOOST_ASSIGN_V2_INTERPRETER_DATA_ER_2010_HPP
-#include <boost/assign/v2/detail/traits/container.hpp>
#include <boost/assign/v2/detail/functor/pair.hpp>
#include <boost/assign/v2/detail/functor/value.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
namespace boost{
namespace assign{
@@ -20,9 +20,9 @@
namespace interpreter_aux{
template<
- typename C // Value or pointer-container
- , typename T/*<-*/ = typename v2::container_aux::value<C>::type/*->*/
- , bool is_map/*<-*/ = v2::container_aux::is_map<C>::value/*->*/
+ typename C // Value or pointer-container
+ , typename T
+ , bool is_map
>
struct deduce_data_generator/*<-*/
{
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/fwd.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,6 +9,7 @@
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_ASSIGN_V2_INTERPRETER_FWD_ER_2010_HPP
#define BOOST_ASSIGN_V2_INTERPRETER_FWD_ER_2010_HPP
+#include <boost/assign/v2/detail/traits/container.hpp>
namespace boost{
struct use_default;
@@ -28,7 +29,6 @@
template<typename Storage, typename Assign> struct plus : Storage{};
// Shortcuts
-
typedef plus<storage_ptr, assign> ptr;
typedef plus<storage_ptr, assign_map> ptr_map;
typedef plus<storage_value, assign> value;
@@ -37,12 +37,23 @@
}// data_tag
namespace interpreter_aux{
- template<typename C, typename F,
- typename ModifierTag, typename DataTag, typename D>
+ template<
+ typename C // Value or pointer-container
+ , typename T = typename v2::container_aux::value<C>::type
+ , bool is_map = v2::container_aux::is_map<C>::value
+ >
+ struct deduce_data_generator;
+
+ template<typename C> struct deduce_data_tag;
+
+ template<typename C, typename F, typename MTag, typename DTag, typename D>
class interpreter_crtp;
- template<typename Tag>
- struct interpreter_modifier;
+ template<typename Tag> struct interpreter_modifier;
+
+ template<typename Derived> struct replace_data_generator;
+ template<typename Derived> struct replace_modifier_tag;
+ template<typename Derived> struct replace_data_tag;
}// interpreter_aux
}// v2
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,13 +12,14 @@
#include <boost/assign/v2/detail/pp/ignore.hpp>
#include <boost/assign/v2/detail/traits/container.hpp>
#include <boost/assign/v2/detail/traits/switch.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
#include <boost/assign/v2/option/modifier/insert.hpp>
#include <boost/assign/v2/option/modifier/iterate.hpp>
#include <boost/assign/v2/option/modifier/std.hpp>
#include <boost/concept_check.hpp>
+#include <boost/mpl/apply.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/mpl/if.hpp>
-#include <boost/mpl/apply.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/type_traits/is_same.hpp>
Modified: sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/interpreter/replace.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,6 +10,7 @@
#ifndef BOOST_ASSIGN_V2_INTERPRETER_REPLACE_ER_2010_HPP
#define BOOST_ASSIGN_V2_INTERPRETER_REPLACE_ER_2010_HPP
#include <boost/assign/v2/detail/pp/ignore.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
#include <boost/mpl/apply.hpp>
namespace boost{
Modified: sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -16,6 +16,7 @@
#include <boost/assign/v2/interpreter/data_generator.hpp>
#include <boost/assign/v2/interpreter/fwd.hpp>
#include <boost/assign/v2/interpreter/replace.hpp>
+#include <boost/assign/v2/option/list.hpp>
#include <boost/mpl/apply.hpp>
namespace boost{
@@ -26,18 +27,38 @@
namespace interpreter_aux{
template<
- typename C // Value or pointer-container
+ typename C // Value or pointer-container
+ , typename F // Functor or keyword
>
- struct deduce_key_generator/*<-*/
+ struct deduce_generator/*<-*/
{
- typedef typename container_aux::key<C>::type key_;
- typedef functor_aux::value<key_> type;
+ typedef F type;
}/*->*/;
template<
- typename C // Value or pointer-container
+ typename C // Multi-array
>
- struct deduce_value_generator/*<-*/
+ struct deduce_generator<C, element_>/*<-*/
+ {
+ typedef functor_aux::value<
+ typename container_aux::element<C>::type
+ > type;
+ }/*->*/;
+
+ template<typename C>
+ struct deduce_generator<C, key_>/*<-*/
+ {
+ typedef typename container_aux::key<C>::type key_;
+ typedef functor_aux::value<key_> type;
+ }/*->*/;
+
+ template<typename C>
+ struct deduce_generator<C, use_default_>/*<-*/
+ : deduce_data_generator<C>
+ {}/*->*/;
+
+ template<typename C>
+ struct deduce_generator<C, value_>/*<-*/
{
typedef functor_aux::value<
typename container_aux::value<C>::type
@@ -46,39 +67,21 @@
namespace result_of{
- template<typename D, typename C, typename F = keyword_aux::use_default>
+ template<typename D, typename C, typename F = use_default_>
struct option_data_generator/*<-*/
: ::boost::mpl::apply1<
interpreter_aux::replace_data_generator<D>,
- F
- >
- {}/*->*/;
-
- template<typename D, typename C>
- struct option_data_generator<D, C, keyword_aux::key>/*<-*/
- : option_data_generator<
- D, C, typename deduce_key_generator<C>::type
- >
- {}/*->*/;
-
- template<typename D, typename C>
- struct option_data_generator<D, C, keyword_aux::use_default>/*<-*/
- : option_data_generator<
- D, C, typename deduce_data_generator<C>::type
- >
- {}/*->*/;
-
- template<typename D, typename C>
- struct option_data_generator<D, C, keyword_aux::value>/*<-*/
- : option_data_generator<
- D, C, typename deduce_value_generator<C>::type
+ typename deduce_generator<C, F>::type
>
{}/*->*/;
}// result_of
- template<typename F/*<-*/= keyword_aux::ignore/*->*/>
+ template<typename F/*<-*/= ignore_/*->*/>
struct option_data_generator/*<-*/
+ : option_listable<
+ option_data_generator<F>
+ >
{
option_data_generator(){}
option_data_generator(F f) : f_( f ){}
@@ -90,49 +93,44 @@
F f_;
}/*->*/;
- template<>
- struct option_data_generator<use_default>/*<-*/
+ template<typename Kwd>
+ struct option_data_generator_helper
{
- option_data_generator(){}
- option_data_generator(keyword_aux::ignore){}
- template<typename C>
- typename deduce_data_generator<C>::type
+ template<typename C>
+ typename deduce_generator<C, Kwd>::type
data_generator()const
{
- return typename deduce_data_generator<C>::type();
+ return typename deduce_generator<C, Kwd>::type();
}
+
+ };
+
+ template<>
+ struct option_data_generator<use_default_>/*<-*/
+ : option_data_generator_helper<use_default_>
+ {
+ option_data_generator(){}
+ option_data_generator(ignore_){}
}/*->*/;
template<>
- struct option_data_generator<keyword_aux::key>/*<-*/
+ struct option_data_generator<key_>/*<-*/
+ : option_data_generator_helper<key_>
{
option_data_generator(){}
- option_data_generator(keyword_aux::ignore){}
+ option_data_generator(ignore_){}
- template<typename C>
- typename deduce_key_generator<C>::type
- data_generator()const
- {
- return typename deduce_key_generator<C>::type();
- }
-
}/*->*/;
template<>
- struct option_data_generator<keyword_aux::value>/*<-*/
+ struct option_data_generator<value_>/*<-*/
+ : option_data_generator_helper<value_>
{
option_data_generator(){}
- option_data_generator(keyword_aux::ignore){}
+ option_data_generator(ignore_){}
- template<typename C>
- typename deduce_value_generator<C>::type
- data_generator()const
- {
- return typename deduce_value_generator<C>::type();
- }
-
}/*->*/;
// Overrides data generator
Modified: sandbox/assign_v2/boost/assign/v2/option/list.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/list.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/list.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,12 +10,15 @@
#ifndef BOOST_ASSIGN_V2_OPTION_LIST_ER_2010_HPP
#define BOOST_ASSIGN_V2_OPTION_LIST_ER_2010_HPP
#include <boost/assign/v2/detail/keyword.hpp>
-#include <boost/assign/v2/interpreter/crtp.hpp>
-#include <boost/mpl/empty_base.hpp>
+#include <boost/assign/v2/interpreter/fwd.hpp>
+#include <boost/mpl/bool.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/mpl/identity.hpp>
#include <boost/typeof/typeof.hpp>
+#include <boost/type_traits/is_base_of.hpp>
#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_reference.hpp>
#include <boost/utility/enable_if.hpp>
namespace boost{
@@ -23,11 +26,11 @@
namespace v2{
namespace interpreter_aux{
- template<typename Lhs, typename Option>
+ template<typename Lhs, typename O>
struct modulo_result
{
static Lhs lhs;
- static Option option;
+ static O option;
#ifdef BOOST_MSVC
BOOST_TYPEOF_NESTED_TYPEDEF_TPL(nested, lhs % option )
@@ -39,7 +42,7 @@
template<typename Head>
struct option_list_exit
- : boost::is_same<Head, keyword_aux::nil>
+ : boost::is_same<Head, nil_>
{};
namespace result_of{
@@ -71,9 +74,11 @@
}// result_of
+ struct list_option_base{};
+
template<
- typename Head = keyword_aux::nil,
- typename Tail = boost::mpl::empty_base,
+ typename Head = nil_,
+ typename Tail = list_option_base,
bool exit = option_list_exit<Head>::value
>
struct list_option : public Tail
@@ -87,17 +92,17 @@
: Tail( tail ), head_( h )
{}
- template<typename Option>
+ template<typename O>
struct result
{
- typedef list_option<Option, list_option> type;
+ typedef list_option<O, list_option> type;
};
- template<typename Option>
- typename result<Option>::type
- operator%(Option option)const
+ template<typename O>
+ typename result<O>::type
+ operator%(O option)const
{
- typedef typename result<Option>::type result_;
+ typedef typename result<O>::type result_;
return result_( *this, option );
}
@@ -126,24 +131,74 @@
typedef list_option<> empty_list_option;
template<
- typename C, typename F, typename ModifierTag,
- typename DataTag, typename D,
+ typename C, typename F, typename MTag,
+ typename DTag, typename D,
typename H, typename T
>
typename result_of::apply_list_option<H, T, D>::type
operator%(
- interpreter_crtp<C, F, ModifierTag, DataTag, D> const& lhs,
+ interpreter_crtp<C, F, MTag, DTag, D> const& lhs,
list_option<H, T> const& list
)
{
return list.apply( lhs );
}
-
+
+namespace result_of{
+
+ template<typename L, typename O1>
+ struct list_option_modulo
+ : L:: template result<O1>
+ {};
+
+
+}// result_of
}// interpreter_aux
namespace{
interpreter_aux::empty_list_option _list_option
= interpreter_aux::empty_list_option();
}
+namespace interpreter_aux{
+
+ template<typename O>
+ struct option_listable
+ : list_option_base
+ {};
+
+namespace result_of{
+
+ template<typename O1, typename O2>
+ struct option_modulo
+ : result_of::list_option_modulo<
+ typename result_of::list_option_modulo<
+ empty_list_option,
+ O1
+ >::type,
+ O2
+ >
+ {};
+
+}// result_of
+
+ template<typename O1, typename O2>
+ typename result_of::option_modulo<O1, O2>::type
+ operator%(option_listable<O1> const option1, O2 const& option2)
+ {
+ O1 const& ref = static_cast<O1 const&>( option1 );
+ return _list_option % ref % option2;
+ }
+
+ template<typename Os>
+ struct is_option_listable
+ : boost::is_base_of<
+ list_option_base,
+ typename boost::remove_cv<
+ typename boost::remove_reference<Os>::type
+ >::type
+ >
+ {};
+
+}// interpreter_aux
}// v2
}// assign
}// boost
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,11 +9,12 @@
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_ASSIGN_V2_OPTION_MODIFIER_ER_2010_HPP
#define BOOST_ASSIGN_V2_OPTION_MODIFIER_ER_2010_HPP
+#include <boost/assign/v2/option/modifier/framework.hpp>
#include <boost/assign/v2/option/modifier/insert.hpp>
#include <boost/assign/v2/option/modifier/iterate.hpp>
#include <boost/assign/v2/option/modifier/mapped.hpp>
-#include <boost/assign/v2/option/modifier/framework.hpp>
#include <boost/assign/v2/option/modifier/repeat.hpp>
+#include <boost/assign/v2/option/modifier/row_major.hpp>
#include <boost/assign/v2/option/modifier/std.hpp>
#endif // BOOST_ASSIGN_V2_OPTION_MODIFIER_ER_2010_HPP
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/framework.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,8 +12,8 @@
#include <boost/assign/v2/detail/keyword.hpp>
#include <boost/assign/v2/detail/pp/ignore.hpp>
#include <boost/assign/v2/interpreter/fwd.hpp>
-#include <boost/assign/v2/interpreter/modifier.hpp>
#include <boost/assign/v2/interpreter/replace.hpp>
+#include <boost/assign/v2/option/list.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -25,9 +25,13 @@
template<
typename Keyword // A class of modifiers
- , typename Arg /*<-*/= keyword_aux::ignore/*->*/ // Specifies an aspect of the implementation
+ , typename Arg /*<-*/= ignore_/*->*/ // Specifies an aspect of the implementation
>
- struct option_modifier
+ struct option_modifier/*<-*/
+ : option_listable<
+ option_modifier<Keyword, Arg>
+ >
+ /*->*/
{
option_modifier(){}
@@ -130,7 +134,11 @@
\
template<typename D, typename Arg>\
struct BOOST_PP_CAT(option_, NAME)\
- : result_of::option_modifier<D, interpreter_aux::BOOST_PP_CAT(keyword_,NAME), Arg>\
+ : result_of::option_modifier<\
+ D,\
+ interpreter_aux::BOOST_PP_CAT(keyword_,NAME),\
+ Arg\
+ >\
{};\
\
}\
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/insert.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,18 +10,15 @@
#ifndef BOOST_ASSIGN_V2_OPTION_MODIFIER_INSERT_ER_2010_HPP
#define BOOST_ASSIGN_V2_OPTION_MODIFIER_INSERT_ER_2010_HPP
#include <cstddef>
-#include <boost/assign/v2/detail/keyword.hpp>
-#include <boost/assign/v2/detail/traits/container.hpp>
#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/detail/keyword.hpp>
#include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
+#include <boost/assign/v2/detail/traits/container.hpp>
#include <boost/assign/v2/option/modifier/framework.hpp>
#include <boost/call_traits.hpp>
#include <boost/shared_ptr.hpp>
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
#include <utility>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/utility/enable_if.hpp>
#endif
namespace boost{
@@ -39,8 +36,6 @@
class interpreter_modifier< modifier_tag::insert >/*<-*/
{
- typedef keyword_aux::ignore ignore_;
-
public:
interpreter_modifier(){}
interpreter_modifier( ignore_, ignore_ ){}
@@ -96,4 +91,4 @@
}// boost
-#endif // BOOST_ASSIGN_V2_OPTION_MODIFIER_ITERATE_ER_2010_HPP
+#endif // BOOST_ASSIGN_V2_OPTION_MODIFIER_INSERT_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/iterate.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,18 +10,16 @@
#ifndef BOOST_ASSIGN_V2_OPTION_MODIFIER_ITERATE_ER_2010_HPP
#define BOOST_ASSIGN_V2_OPTION_MODIFIER_ITERATE_ER_2010_HPP
#include <cstddef>
-#include <boost/assign/v2/detail/keyword.hpp>
#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
+#include <boost/assign/v2/detail/keyword.hpp>
+#include <boost/assign/v2/detail/functor/iterate.hpp>
#include <boost/assign/v2/detail/pp/ignore.hpp>
#include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
#include <boost/assign/v2/option/modifier/framework.hpp>
#include <boost/call_traits.hpp>
#include <boost/shared_ptr.hpp>
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
#include <utility>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/utility/enable_if.hpp>
#endif
namespace boost{
@@ -30,24 +28,7 @@
//[syntax_option_iterate
namespace modifier_tag{
- struct iterate_arg
- {
-
- typedef std::size_t result_type;
-
- iterate_arg():i( 0 ){}
- iterate_arg( result_type i_ ):i( i_ ){}
-
- result_type operator()()const{ return this->i++; }
-
- typedef iterate_arg type;
-
- private:
- mutable result_type i;
-
- };
-
- template<typename Arg/*<-*/= iterate_arg::type/*->*/> struct iterate{};
+ template<typename Arg = functor_aux::iterate> struct iterate{};
}// modifier_tag
namespace interpreter_aux{
@@ -64,7 +45,6 @@
class interpreter_modifier< modifier_tag::iterate<Arg> >/*<-*/
{
- typedef keyword_aux::ignore ignore_;
typedef Arg arg_;
// storing a copy of lambda::something has caused pbs, hence ptr
typedef boost::shared_ptr<arg_> ptr_;
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/mapped.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,7 +12,6 @@
#include <boost/assign/v2/detail/keyword.hpp>
#include <boost/assign/v2/detail/pp/ignore.hpp>
#include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
#include <boost/assign/v2/option/modifier/framework.hpp>
#include <boost/call_traits.hpp>
#include <boost/shared_ptr.hpp>
@@ -23,10 +22,7 @@
//[syntax_option_mapped
namespace modifier_tag{
- template<
- typename Arg
- >
- struct mapped;
+ template<typename Arg> struct mapped{};
}// modifier_tag
namespace interpreter_aux{
@@ -38,7 +34,6 @@
typedef Arg arg_;
// storing a copy of lambda::something has caused pbs, hence ptr
typedef boost::shared_ptr<arg_> ptr_;
- typedef keyword_aux::ignore ignore_;
public:
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/repeat.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -15,10 +15,7 @@
#include <boost/assign/v2/detail/traits/container.hpp>
#if BOOST_ASSIGN_V2_ENABLE_CPP0X
#include <utility>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_reference.hpp>
#endif
-#include <boost/assign/v2/interpreter/fwd.hpp>
#include <boost/assign/v2/option/modifier/framework.hpp>
namespace boost{
Modified: sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/modifier/std.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,7 +11,6 @@
#define BOOST_ASSIGN_V2_OPTION_MODIFIER_STD_ER_2010_HPP
#include <boost/assign/v2/detail/keyword.hpp>
#include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/interpreter/fwd.hpp>
#include <boost/assign/v2/option/modifier/framework.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -75,7 +74,6 @@
template<>\
class interpreter_modifier<modifier_tag::FUN>\
{\
- typedef keyword_aux::ignore ignore_;\
public:\
interpreter_modifier(){}\
interpreter_modifier( ignore_, ignore_ ){}\
Modified: sandbox/assign_v2/boost/assign/v2/pipe.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/pipe.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/pipe.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,6 +10,8 @@
#ifndef BOOST_ASSIGN_V2_PIPE_ER_2010_HPP
#define BOOST_ASSIGN_V2_PIPE_ER_2010_HPP
+#include <boost/assign/v2/pipe/chain.hpp>
+#include <boost/assign/v2/pipe/convert.hpp>
#include <boost/assign/v2/pipe/csv_put.hpp>
#endif // BOOST_ASSIGN_V2_PIPE_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/pipe/csv_put.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,15 +10,18 @@
#ifndef BOOST_ASSIGN_V2_PIPE_CSV_PUT_HPP_ER_2010
#define BOOST_ASSIGN_V2_PIPE_CSV_PUT_HPP_ER_2010
#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/detail/keyword.hpp>
+#include <boost/assign/v2/detail/traits.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/assign/v2/option/list.hpp>
#include <boost/assign/v2/option/data_generator.hpp>
#include <boost/assign/v2/ref/array/as_arg_list.hpp>
#include <boost/assign/v2/ref/array/csv_array.hpp>
#include <boost/assign/v2/ref/wrapper/copy.hpp>
#include <boost/mpl/apply.hpp>
-#include <boost/mpl/vector/vector0.hpp>
+#include <boost/mpl/if.hpp>
#include <boost/mpl/size.hpp>
+#include <boost/mpl/vector/vector0.hpp>
#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
#include <boost/assign/v2/detail/config/limit_csv_arity.hpp>
#include <boost/mpl/aux_/na.hpp>
@@ -180,10 +183,16 @@
>
C& operator|(C& cont, interpreter_aux::arg_list<H, T, N, U> const& arg_list)/*<-*/
{
- typedef typename deduce_value_generator<C>::type data_gen_;
- typedef typename v2::result_of::put<C, data_gen_>::type put_;
+ typedef typename ::boost::mpl::if_c<
+ !container_aux::is_map<C>::value,
+ use_default_,
+ value_
+ >::type arg_;
+
v2::ref::as_arg_list(
- arg_list.apply( put_( cont ) ),
+ arg_list.apply(
+ put( cont ) % ( _data = arg_() )
+ ),
arg_list.arg_list_cont()
);
return cont;
Modified: sandbox/assign_v2/boost/assign/v2/put.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/put.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/put.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,132 +9,7 @@
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_ASSIGN_V2_PUT_ER_2010_HPP
#define BOOST_ASSIGN_V2_PUT_ER_2010_HPP
-#include <boost/assign/v2/interpreter/crtp.hpp>
-#include <boost/assign/v2/interpreter/data_generator.hpp>
-#include <boost/assign/v2/interpreter/modifier.hpp>
-#include <boost/assign/v2/interpreter/replace.hpp>
-#include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/ref/wrapper/copy.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[syntax_put
-namespace interpreter_aux{
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- class put_interpreter :
-//<-
- protected ref::wrapper< ref::assign_tag::copy, C >,
-//->
- public interpreter_aux::interpreter_crtp<
- C,
- F,
- ModifierTag, DataTag, put_interpreter<C, F, ModifierTag, DataTag>
- >
- {
-//<-
- typedef interpreter_aux::interpreter_crtp<
- C, F, ModifierTag, DataTag, put_interpreter
- > super2_t;
-//->
- public:
-
- typedef /*<-*/ typename super2_t::result_type
- BOOST_ASSIGN_V2_IGNORE(/*->*/ unspecified /*<-*/)/*->*/
- result_type;
-//<-
- protected:
-
- typedef interpreter_aux::interpreter_modifier<ModifierTag> modifier_;
- typedef ref::assign_tag::copy assign_tag_;
- typedef ref::wrapper<assign_tag_,C> super1_t;
-//->
- public:
-
- put_interpreter()/*<-*/
- {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
- explicit put_interpreter( C& cont )/*<-*/
- : super1_t( cont )
- {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
- explicit put_interpreter( C& cont, F const& f, modifier_ const& m )/*<-*/
- : super1_t( cont ), super2_t( f, m )
- {}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- C& container()const/*<-*/{
- return static_cast<super1_t const&>(*this).get();
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
- };
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- struct replace_data_generator<
- interpreter_aux::put_interpreter<C, F, ModifierTag, DataTag>
- >{
- template<typename F1>
- struct apply/*<-*/{
- typedef interpreter_aux::put_interpreter<
- C, F1, ModifierTag, DataTag
- > type;
- }/*->*/;
- };
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- struct replace_modifier_tag<
- interpreter_aux::put_interpreter<C, F, ModifierTag, DataTag>
- >{
- template<typename ModifierTag1>
- struct apply/*<-*/{
- typedef interpreter_aux::put_interpreter<
- C, F, ModifierTag1, DataTag
- > type;
- }/*->*/;
- };
-
- template<typename C, typename F, typename ModifierTag, typename DataTag>
- struct replace_data_tag<
- interpreter_aux::put_interpreter<C, F, ModifierTag, DataTag>
- >{
- template<typename DataTag1>
- struct apply/*<-*/{
- typedef interpreter_aux::put_interpreter<
- C, F, ModifierTag, DataTag1
- > type;
- }/*->*/;
- };
-
-}// interpreter_aux
-namespace result_of{
-
- template<
- typename C/*<-*/
- , typename DataGenerator
- = typename interpreter_aux::deduce_data_generator<C>::type
- >
- struct put/*<-*/{
- typedef
- interpreter_aux::put_interpreter<
- C
- , DataGenerator
- , typename interpreter_aux::deduce_modifier_tag<C>::type
- , typename interpreter_aux::deduce_data_tag<C>::type
- >
- type;
- }/*->*/;
-
-}// result_of
-
- template<typename C>
- typename result_of::put<C>::type
- put( C& cont )/*<-*/
- {
- typedef typename result_of::put<C>::type result_;
- return result_( cont );
- }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
-//]
-}// v2
-}// assign
-}// boost
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#endif // BOOST_ASSIGN_V2_PUT_ER_2010_HPP
Modified: sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -56,15 +56,15 @@
: nth_result_of::array<1, U>{}/*->*/;
template<typename U>
- struct array<U, keyword_aux::nil>/*<-*/
+ struct array<U, nil_>/*<-*/
: nth_result_of::array<0, U>{}/*->*/;
}// result_of
// Generates an empty array
template<typename T>
- typename result_of::array<T, keyword_aux::nil>::type
- array( keyword_aux::nil )
+ typename result_of::array<T, nil_>::type
+ array( nil_ )
/*<-*/
{
return ref::list<list_aux::array_tag>( v2::_nil );
Modified: sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/csv_array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -47,7 +47,7 @@
template<typename U>
typename nth_result_of::csv_array<0, U>::type
- csv_array( keyword_aux::nil )/*<-*/
+ csv_array( nil_ )/*<-*/
{
typedef typename nth_result_of::csv_array<0, U>::type result_;
return result_();
Modified: sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/aux_/list/list.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -53,7 +53,7 @@
nth_result_of::list<Tag>,
::boost::mpl::vector0<>
>::type
- list( keyword_aux::nil )
+ list( nil_ )
{
return typename ::boost::mpl::apply1<
nth_result_of::list<Tag>,
Modified: sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/include/_get.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_INCLUDE__GET_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_INCLUDE__GET_ER_2010_HPP
-#include <boost/assign/v2/ref/array/get.hpp>
-
-#endif // BOOST_ASSIGN_V2_REF_INCLUDE__GET_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/include/array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_INCLUDE_ARRAY_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_INCLUDE_ARRAY_ER_2010_HPP
-#include <boost/assign/v2/ref/array/array.hpp>
-
-#endif // BOOST_ASSIGN_V2_REF_INCLUDE_ARRAY_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/ref/include/csv_array.hpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,14 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_REF_INCLUDE_CSV_ARRAY_ER_2010_HPP
-#define BOOST_ASSIGN_V2_REF_INCLUDE_CSV_ARRAY_ER_2010_HPP
-#include <boost/assign/v2/ref/array/csv_array.hpp>
-
-#endif // BOOST_ASSIGN_V2_REF_INCLUDE_CSV_ARRAY_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/libs/assign/v2/src/main.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/src/main.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/src/main.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -23,8 +23,6 @@
/*#include <fstream>
#include <libs/assign/v2/speed/test.h>*/
-//#include <boost/assign/v2/include.hpp>
-
int main (int argc, char * const argv[])
{
Modified: sandbox/assign_v2/libs/assign/v2/test/conversion.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/conversion.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/conversion.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -42,7 +42,7 @@
//[test_conversion_vec_array
std::vector<int> r( 3 ); r[0] = 1 ; r[1] = 10; r[2] = 100;
typedef array<int, 3> ar_;
- ar_ const& ar = ( r | as2::_convert<ar_>() );
+ ar_ const& ar = ( r | as2::convert<ar_>() );
BOOST_ASSIGN_V2_CHECK( range::equal( ar, as2::csv_deque( 1 , 10, 100 ) ) );
//]
@@ -70,9 +70,9 @@
const int sz = 3; typedef array<int, sz> row_;
array<row_, sz> matrix3x3 = converter(
as2::ref::array
- ( as2::ref::csv_array( 1, 2, 3 ) | as2::_convert<row_>() )
- ( as2::ref::csv_array( 4, 5, 6 ) | as2::_convert<row_>() )
- ( as2::ref::csv_array( 7, 8, 9 ) | as2::_convert<row_>() )
+ ( as2::ref::csv_array( 1, 2, 3 ) | as2::convert<row_>() )
+ ( as2::ref::csv_array( 4, 5, 6 ) | as2::convert<row_>() )
+ ( as2::ref::csv_array( 7, 8, 9 ) | as2::convert<row_>() )
);
for(int i = 0; i < 9; i++)
@@ -86,7 +86,7 @@
//[test_conversion_as2_deque_array
std::vector<int> r( 3 ); r[0] = 1 ; r[1] = 10; r[2] = 100;
typedef array<int, 3> ar_;
- ar_ const& ar = ( as2::csv_deque( 1 , 10, 100 ) | as2::_convert<ar_>() );
+ ar_ const& ar = ( as2::csv_deque( 1 , 10, 100 ) | as2::convert<ar_>() );
BOOST_ASSIGN_V2_CHECK(
range::equal( ar, as2::csv_deque( 1 , 10, 100 ) )
Modified: sandbox/assign_v2/libs/assign/v2/test/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/csv.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/csv.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,12 +11,13 @@
#include <map>
#include <string>
#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/csv.hpp>
+//#include <boost/assign/v2/csv.hpp>
#include <boost/assign/v2/deque.hpp>
-#include <boost/assign/v2/put.hpp>
// Options come after
#include <boost/assign/v2/option/data_generator.hpp>
#include <boost/assign/v2/option/modifier/std.hpp>
+#include <boost/assign/v2/put/csv_put.hpp> // Really?
+#include <boost/assign/v2/put/put.hpp>
#include <boost/range/algorithm/equal.hpp>
#include <libs/assign/v2/test/csv.h>
@@ -30,7 +31,7 @@
{
//[test_csv_put
std::deque<int> cont;
- as2::csv( as2::put( cont ), 1, 10, 100 );
+ as2::csv_put( cont, 1, 10, 100 );
BOOST_ASSIGN_V2_CHECK( range::equal( cont, as2::csv_deque( 1, 10, 100 ) ) );
//]
@@ -40,10 +41,7 @@
typedef std::map<std::string, int> C; typedef C::value_type T;
C cont;
- as2::csv(
- as2::put( cont ) % (as2::_data = as2::_value),
- T("jan", 31), T("feb", 28), T("mar", 31)
- );
+ as2::csv_put( cont, T("jan", 31), T("feb", 28), T("mar", 31) );
BOOST_ASSIGN_V2_CHECK( cont["jan"] == 31 );
BOOST_ASSIGN_V2_CHECK( cont["mar"] == 31 );
@@ -52,21 +50,18 @@
{
//[test_csv_put_modulo
std::deque<int> cont;
- as2::csv(
- as2::put( cont ) % as2::_push_front,
- 100, 10, 1
- );
+ as2::csv_put( cont, as2::_push_front, 100, 10, 1 );
BOOST_ASSIGN_V2_CHECK(
range::equal( cont, as2::csv_deque( 1, 10, 100 ) )
);
//]
}
- {
+ /*{
//[test_csv_deque_modulo
BOOST_AUTO(
cont,
- as2::csv(
+ csv(
as2::deque<int>( as2::_nil ) % as2::_push_front,
1, 10, 100
)
@@ -76,7 +71,7 @@
range::equal( cont, as2::csv_deque( 1, 10, 100 ) )
);
//]
- }
+ }*/
}
}// xxx_csv
Modified: sandbox/assign_v2/libs/assign/v2/test/option.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -12,6 +12,7 @@
#include <libs/assign/v2/test/option/list.h>
#include <libs/assign/v2/test/option/mapped.h>
#include <libs/assign/v2/test/option/repeat.h>
+#include <libs/assign/v2/test/option/row_major.h>
#include <libs/assign/v2/test/option/std_modifier.h>
#include <libs/assign/v2/test/option.h>
@@ -24,6 +25,7 @@
xxx_mapped::test();
xxx_list::test();
xxx_repeat::test();
+ // xxx_row_major::test(); // TODO
xxx_standard::test();
}
Modified: sandbox/assign_v2/libs/assign/v2/test/option/data.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/data.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/data.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -15,13 +15,12 @@
#include <boost/array.hpp>
#include <boost/assign/v2/detail/config/check.hpp>
#include <boost/assign/v2/deque.hpp>
-#include <boost/assign/v2/put.hpp>
-// Options come next
#include <boost/assign/v2/option/data_generator.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/function.hpp>
#include <boost/lambda/bind.hpp>
#include <boost/lambda/lambda.hpp>
-#include <boost/lambda/construct.hpp>
#include <boost/numeric/conversion/bounds.hpp>
#include <boost/range/algorithm/equal.hpp>
#include <boost/typeof/typeof.hpp>
@@ -41,9 +40,11 @@
std::vector<double> exponent;
/*<-*/typedef double(*fp)(double);/*->*/
typedef function<double(double)> f_;
- (
- as2::put( exponent ) % ( as2::_data = f_( /*<-*/fp(/*->*/ log10 /*<-*/)/*->*/ ) )
- )( 1.0 )( 10.0 )( 100.0 )( 1000.0 )( 10000.0 );
+ as2::csv_put(
+ exponent
+ , as2::_data = f_( /*<-*/fp(/*->*/ log10 /*<-*/)/*->*/ )
+ , 1.0, 10.0, 100.0, 1000.0, 10000.0
+ );
double eps = numeric::bounds<double>::smallest();
BOOST_ASSIGN_V2_CHECK( fabs( exponent.front() - 0.0 ) < eps );
@@ -68,16 +69,16 @@
{
//[test_option_data_value
typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
typedef std::map<int, word_> C;
typedef C::value_type T;
typedef C::mapped_type D;
C map;
(
as2::put( map ) % ( as2::_data = as2::_value )
- )( 1, D( foo, 3 ) )( 2, bar )( 3, D( baz, 3, 3 ) )( 4, "qux");
+ )( 1, D( x, 3 ) )( 2, y )( 3, D( z, 3, 3 ) )( 4, "qux");
BOOST_ASSIGN_V2_CHECK( map[1] == "foo" ); BOOST_ASSIGN_V2_CHECK( map[2] == "bar" );
BOOST_ASSIGN_V2_CHECK( map[3] == "baz" ); BOOST_ASSIGN_V2_CHECK( map[4] == "qux" );
Modified: sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/iterate.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,11 +10,10 @@
#include <vector>
#include <boost/array.hpp>
#include <boost/assign/v2/detail/config/check.hpp>
-
-#include <boost/assign/v2/put.hpp>
-// Options come next
-#include <boost/assign/v2/option/modifier/iterate.hpp>
#include <boost/assign/v2/deque.hpp>
+#include <boost/assign/v2/option/modifier/iterate.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
#include <boost/lambda/construct.hpp>
@@ -36,7 +35,7 @@
using namespace boost;
namespace as2 = assign::v2; {
//[test_option_iterate_meta
- typedef as2::modifier_tag::iterate_arg arg_;
+ typedef as2::functor_aux::iterate arg_;
typedef array<int, 4> cont_;
typedef as2::result_of::put<cont_>::type put_;
typedef as2::result_of::option_iterate<put_, arg_>::type result1_;
@@ -54,9 +53,11 @@
alternating[2] = -2;
int index = 3;
- (
- as2::put( alternating ) % ( as2::_iterate = var( index )++ )
- )( +2 )( -3 )( +3 )( -4 )( +4 )( -5 )( +5 );
+ as2::csv_put(
+ alternating
+ , as2::_iterate = var( index )++
+ , +2, -3, +3, -4, +4, -5, +5
+ );
BOOST_ASSIGN_V2_CHECK(
range::equal(
@@ -66,10 +67,11 @@
);
//]
}
+/*
{
//[test_option_iterate_meta_deque
typedef as2:: interpreter_aux::keyword_iterate keyword_;
- typedef as2::modifier_tag::iterate_arg arg_;
+ typedef as2::functor_aux::iterate arg_;
typedef as2::result_of::deque<int>::type put_;
typedef as2::result_of::option_iterate<put_, arg_>::type result1_;
typedef as2::modifier_tag::iterate<arg_> tag1_;
@@ -102,6 +104,7 @@
);
//]
}
+*/
}
}// xxx_iterate
Modified: sandbox/assign_v2/libs/assign/v2/test/option/list.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/list.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/list.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -9,10 +9,10 @@
//////////////////////////////////////////////////////////////////////////////
#include <deque>
#include <boost/assign/v2/detail/config/check.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/assign/v2/option/list.hpp>
#include <boost/assign/v2/option/data_generator.hpp>
#include <boost/assign/v2/option/modifier/std.hpp>
-#include <boost/assign/v2/put.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/static_assert.hpp>
#include <boost/typeof/typeof.hpp>
@@ -24,8 +24,6 @@
void test()
{
- //xxx_csv_put::test();
- //xxx_option::test();
using namespace boost::assign::v2;
std::deque<int> cont;
@@ -35,13 +33,12 @@
BOOST_AUTO(
apply,
(
- _list_option % _push_front % ( _data = ( _1 % 10 ) )
+ _push_front % ( _data = ( _1 % 10 ) )
).apply( put( cont ) )
);
apply( 15 );
BOOST_ASSIGN_V2_CHECK( cont[0] == 5 );
BOOST_ASSIGN_V2_CHECK( cont[1] == 1 );
-
}
}// xxx_list
Modified: sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/mapped.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,7 +11,7 @@
#include <string>
#include <cmath>
#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/assign/v2/deque.hpp>
// Options come next
#include <boost/assign/v2/option/data_generator.hpp>
@@ -36,11 +36,13 @@
{
//[test_option_mapped_map
using namespace lambda;
- typedef std::string str_; typedef std::map<str_, int> C; C year;
+ typedef std::string month_; typedef int days_;
+ typedef std::map<month_, days_> C; C year;
(
as2::put( year )( "feb", 28 )( "apr", 30 )( "jun", 30 )( "sep", 30 )( "nov", 30 )
- % (as2::_data = as2::_key) % ( as2::_mapped = ( _1 = 31 ) )
- )/*<<Calls `year["jan"] = 31` etc.>>*/( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
+ % (as2::_data = as2::_key)
+ % ( as2::_mapped = ( _1 = 31 ) )
+ )/*<<Calls `year[ month_( "jan" ) ] = 31`>>*/( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
BOOST_ASSIGN_V2_CHECK( year["jan"] == 31 );
BOOST_ASSIGN_V2_CHECK( year["dec"] == 31 );
Modified: sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/repeat.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -10,7 +10,7 @@
#include <vector>
#include <boost/typeof/typeof.hpp>
#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
// Options come next
#include <boost/assign/v2/option/modifier/std.hpp>
#include <boost/assign/v2/option/modifier/repeat.hpp>
@@ -29,10 +29,13 @@
{
//[test_option_repeat_simple
std::vector<int> cont;
- ( as2::put( cont ) % ( as2::_repeat = 2 ) )( 1 )( 10 )( 100 );
+ as2::csv_put( cont, as2::_repeat = 2, 1, 10, 100 );
BOOST_ASSIGN_V2_CHECK(
- range::equal( cont, as2::csv_deque( 1, 1, 10, 10, 100, 100 ) )
+ range::equal(
+ cont,
+ as2::csv_deque( 1, 1, 10, 10, 100, 100 )
+ )
);
//]
}
Modified: sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/option/std_modifier.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -13,7 +13,7 @@
#include <set>
#include <string>
#include <boost/assign/v2/detail/config/check.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
#include <boost/assign/v2/deque.hpp>
// Options come next
#include <boost/assign/v2/option/modifier/std.hpp>
@@ -21,8 +21,6 @@
#include <boost/range/begin.hpp>
#include <boost/range/end.hpp>
#include <boost/range/algorithm/equal.hpp>
-#include <boost/range/algorithm/lower_bound.hpp>
-#include <boost/range/algorithm/upper_bound.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/assert.hpp>
@@ -48,7 +46,7 @@
typedef as2::result_of::put<std::vector<int> >::type put_;
typedef as2::modifier_tag::push_front tag_;
typedef as2::result_of::option_std_modifier<
- put_, tag_
+ put_, tag_
>::type result1_;
typedef as2:: interpreter_aux::replace_modifier_tag<put_> meta2_;
typedef ::boost::mpl::apply1<meta2_, tag_>::type result2_;
@@ -58,14 +56,14 @@
{
// fully qual boost::begin/end demanded by MSVC - error C2668
//[test_option_push_front
- boost::circular_buffer<int> cb(3);
- ( as2::put( cb ) % as2::_push_front)( 3 )( 2 )( 1 );
+ boost::circular_buffer<int> cb( 3 );
+ as2::csv_put( cb, as2::_push_front, 3, 2, 1 );
BOOST_ASSIGN_V2_CHECK(
range::equal(cb, as2::csv_deque(1, 2, 3) )
);
- as2::put( cb )( 4 )( 5 );
+ as2::csv_put( cb, 4, 5 );
BOOST_ASSIGN_V2_CHECK(
range::equal(cb, as2::csv_deque(3, 4, 5) )
@@ -75,7 +73,8 @@
}
{
//[test_option_push
- std::queue<int> fifo; ( as2::put( fifo ) % as2::_push )( 1 )( 10 )( 100 );
+ // NB: This option is dedundant with the default
+ std::queue<int> fifo; as2::csv_put( fifo, as2::_push, 1, 10, 100 );
BOOST_ASSIGN_V2_CHECK( fifo.front() == 1 );
BOOST_ASSIGN_V2_CHECK( fifo.back() == 100 );
@@ -83,7 +82,8 @@
}
{
//[test_option_insert
- std::set<std::string> letters; ( as2::put( letters ) % as2::_insert )( "d" )( "a" )( "c" )( "b" );
+ // NB: This option is dedundant with the default
+ std::set<std::string> letters; as2::csv_put( letters, as2::_insert, "d", "a", "c", "b" );
BOOST_ASSIGN_V2_CHECK( letters.lower_bound( "a" ) == boost::begin( letters ) );
BOOST_ASSIGN_V2_CHECK( letters.upper_bound( "d" ) == boost::end( letters ) );
@@ -91,10 +91,13 @@
}
{
//[test_option_push_back
+ // NB: This option is dedundant with the default
std::list<int> list;
- ( as2::put( list ) % as2::_push_back )( 1 )( 10 )( 100 );
+ as2::csv_put( list, as2::_push_back, 1, 10, 100 );
- BOOST_ASSIGN_V2_CHECK( range::equal( list, as2::csv_deque( 1, 10, 100 ) ) );
+ BOOST_ASSIGN_V2_CHECK(
+ range::equal( list, as2::csv_deque( 1, 10, 100 ) )
+ );
//]
}
// DEQUE
Modified: sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/ptr.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -11,7 +11,8 @@
#include <utility>
#include <boost/assign/v2/detail/config/check.hpp>
#include <boost/assign/v2/detail/pp/ignore.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
+#include <boost/assign/v2/put/put.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/ptr_container/ptr_array.hpp>
#include <boost/ptr_container/ptr_deque.hpp>
@@ -31,81 +32,80 @@
namespace as2 = boost::assign::v2;
- {
+ // ARRAY
+ {
//[test_put_ptr_array
typedef int T;
T x = 1, y = 2, z = 3; boost::ptr_array<T, 3> cont;
- as2::put( cont )/*<<Calls `assoc[i++] = new T( t )` for `i = 0` and `t`[^ = ] `x`, `y`, and `z`>>*/( x )( y )( z );
+ /*<<Calls `assoc[i++] = new T( t )` for `i = 0` and `t`[^ = ] `x`, `y`, and `z`>>*/as2::csv_put( cont, x, y, z );
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
}
+ // SEQUENCE
{
//[test_put_ptr_deque
typedef int T; T x = 1, y = 2, z = 0; boost::ptr_deque<T> cont;
- as2::put( cont )/*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( y )( z );
+ /*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/as2::csv_put( cont, x, y, z );
BOOST_ASSIGN_V2_CHECK( cont.front() == x );
BOOST_ASSIGN_V2_CHECK( cont.back() == z );
//]
}
+ // MAP
{
- //[test_put_ptr_list
- typedef int T; T x = 1, y = 2, z = 0; boost::ptr_list<T> cont;
- as2::put( cont )/*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( y )( z );
+ //[test_put_ptr_map
+ typedef std::string key_;
+ boost::ptr_map<key_, int> assoc;
+ as2::put( assoc )( "jan", 31 )( "feb", 28 )( "mar", 31 );
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+
+ BOOST_ASSIGN_V2_CHECK( assoc["jan"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( assoc["mar"] == 31 );
//]
}
- {
- //[test_put_ptr_vector
- typedef int T; T x = 1, y = 2, z = 0; boost::ptr_vector<T> cont;
- as2::put( cont )/*<<Calls `assoc.push_back( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( y )( z );
+ {
+ //[test_put_ptr_unordered_map
+ typedef std::string word_;
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
+ boost::ptr_unordered_map<int, word_> map;
+ as2::put( map )( 1, x, 3 )( 2, y )( 3, z, 3, 3 )( 4, "qux");
- BOOST_ASSIGN_V2_CHECK( cont.front() == x );
- BOOST_ASSIGN_V2_CHECK( cont.back() == z );
+ assert( map[1] == "foo" ); assert( map[2] == "bar" );
+ assert( map[3] == "baz" ); assert( map[4] == "qux" );
//]
}
{
- //[put_ptr_map
- typedef std::string key_;
- boost::ptr_map<key_, int> assoc;
- as2::put( assoc )( "jan", 31 )( "feb", 28 )( "mar", 31 );
+ //[test_csv_put_ptr_map
+ typedef std::string key_; typedef int days_;
+ typedef boost::ptr_map<key_, days_> C;
+ typedef as2::value_container_value<C>::type /*<<Same as `std::map<key_, days_>::value_type`>>*/T;
+ C map; as2::csv_put( map, T("jan", 31 ), T( "feb", 28 ), T( "mar", 31 ) );
- BOOST_ASSIGN_V2_CHECK( assoc["jan"] == 31 );
- BOOST_ASSIGN_V2_CHECK( assoc["mar"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( map["jan"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( map["mar"] == 31 );
//]
}
+ // SET
{
- //[put_ptr_set
+ // Shows that x, y, z can be variadic
+ //[test_put_ptr_set
typedef std::string T; boost::ptr_set<T> assoc;
T x = "isomer", y = "ephemeral", z = "prosaic";
- as2::put( assoc )/*<<Calls `assoc.insert( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/( x )( z )( y );
+ /*<<Calls `assoc.insert( new T( t ) )` for `t` [^=] `x`, `y`, and `z`>>*/as2::csv_put( assoc, x, z, y );
BOOST_ASSIGN_V2_CHECK( assoc.count( x ) == 1 );
BOOST_ASSIGN_V2_CHECK( assoc.count( z ) == 1 );
//]
}
{
- //[test_put_put_unordered_map
- typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
- boost::ptr_unordered_map<int, word_> map;
- as2::put( map )( 1, foo, 3 )( 2, bar )( 3, baz, 3, 3 )( 4, "qux");
-
- assert( map[1] == "foo" ); assert( map[2] == "bar" );
- assert( map[3] == "baz" ); assert( map[4] == "qux" );
- //]
- }
- {
- //[test_put_put_unordered_set
+ //[test_put_ptr_unordered_set
boost::ptr_unordered_set<std::string> set;
- as2::put( set )( "foo" )( "bar" )( "baz" );
+ as2::csv_put( set, "foo", "bar", "baz" );
BOOST_ASSIGN_V2_CHECK( set.count( "foo" ) == 1 );
BOOST_ASSIGN_V2_CHECK( set.count( "baz" ) == 1 );
Modified: sandbox/assign_v2/libs/assign/v2/test/put/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/put/put.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/put/put.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -25,7 +25,8 @@
#include <boost/assign/v2/detail/config/check.hpp>
#include <boost/assign/v2/detail/traits.hpp>
#include <boost/assign/v2/deque/csv_deque.hpp>
-#include <boost/assign/v2/put.hpp>
+#include <boost/assign/v2/put/put.hpp>
+#include <boost/assign/v2/put/csv_put.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/range/algorithm_ext/iota.hpp>
#include <boost/range/begin.hpp>
@@ -47,30 +48,32 @@
using namespace boost;
namespace as2 = assign::v2;
+ // STL
{
- //[test_put_put_bitset
- typedef std::string str_; typedef std::bitset<3> number;
- /*<<Keep in mind that although `number( str_( "011" ) )`, for instance, is valid, `range_3bit.push_back( str_( "011" ) )` isn't (GCC4.2)>>*/ std::vector<number> range_3bit;
- /*<<Calls `range_3bit.push_back( number( t ) );` for [^t = ]`str_( "000" )`[^, ..., ]`str_( "111" )`>>*/as2::put( range_3bit )
- ( str_( "000" ) )( str_( "001" ) )
- ( str_( "010" ) )( str_( "011" ) )
- ( str_( "100" ) )( str_( "101" ) )
- ( str_( "110" ) )( str_( "111" ) );
-
- for(unsigned i = 0; i < range_3bit.size(); i++)
- {
- BOOST_ASSIGN_V2_CHECK( range_3bit[i].to_ulong() == i );
- }
- //]
- // unsigned i else warning comparison between signed & unsigned
+ //[test_csv_put_stl
+ std::queue<int> adapter; as2::csv_put( adapter, 1, 10, 100 );
+ array<int, 3> array; as2::csv_put( array, 1, 10, 100 );
+ std::set<int> assoc; as2::csv_put( assoc, 1, 10, 100 );
+ std::list<int> seq; as2::csv_put( seq, 1, 10, 100 );
+ //]
+ BOOST_ASSIGN_V2_CHECK( adapter.front() == 1 );
+ BOOST_ASSIGN_V2_CHECK( adapter.back() == 100 );
+ BOOST_ASSIGN_V2_CHECK( array.front() == 1 );
+ BOOST_ASSIGN_V2_CHECK( array.back() == 100 );
+ BOOST_ASSIGN_V2_CHECK( assoc.count( 100 ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( assoc.count( 1 ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( seq.front() == 1 );
+ BOOST_ASSIGN_V2_CHECK( seq.back() == 100 );
}
+ // ARRAY
{
- //[test_put_put_numeric_kb
+ //[test_csv_put_keypad
std::vector<int> numeric( 10 ); iota( numeric, 0 ); typedef std::string str_;
typedef variant< int, str_ > key_; array<key_, 16> keypad;
- as2::put( keypad )
- /*<<Calls `keypad[ i ] = key_( t )` for [^( i, t ) = ( 0, "+" ), ..., ( 5, "." )]>>*/( "+" )( "-" )( "*" )( "/" )( "=" )( "." )
- /*<<Calls `keypad[ 6 + i ] = key_( *( b + i ) )` for [^i = 0, ..., 9] and [^b =] `boost::begin( numeric )`>>*/( as2::as_arg_list( numeric ) );
+ as2::csv_put( keypad
+ , "+", "-", "*", "/", "=", "."
+ , as2::as_arg_list( numeric )
+ );
BOOST_ASSIGN_V2_CHECK( get<str_>( keypad.front() ) == "+" );
BOOST_ASSIGN_V2_CHECK( get<int>( keypad.back() ) == 9 );
@@ -79,16 +82,16 @@
BOOST_ASSIGN_V2_CHECK( get<int>( keypad[ 6 ] ) == 0 );
}
{
- //[test_put_put_ragged
+ //[test_put_ragged
typedef double data_; typedef std::vector<data_> uneven_;
uneven_ a( 3 ); a[0] = 0.71; a[1] = 0.63; a[2] = 0.85;
uneven_ b( 4 ); b[0] = 0.61; b[1] = 0.69; b[2] = 0.92; b[3] = 0.55;
array<uneven_, 4> ragged;
as2::put( ragged )
/*<<Calls `ragged.push_back( uneven_( begin( a ), end( a ) ) )`>>*/( boost::begin( a ), boost::end( a ) )
- /*<<Calls `ragged.push_back( uneven_( b ) )`>>*/( b )
- /*<<Calls `ragged.push_back( uneven_( 1, -99.99 ) )`>>*/( 1, -99.99 )
- /*<<Calls `ragged.push_back( uneven_( ) )`>>*/( );
+ ( b )
+ ( 1, -99.99 )
+ ( );
BOOST_ASSIGN_V2_CHECK( ragged[0].size() == a.size() );
BOOST_ASSIGN_V2_CHECK( ragged[3].size() == 0 );
@@ -103,25 +106,28 @@
BOOST_ASSIGN_V2_CHECK( fabs( ragged[2].front() + 99.99 ) < eps );
BOOST_ASSIGN_V2_CHECK( fabs( ragged[2].back() + 99.99 ) < eps );
}
+ // SEQUENCE
{
- //[test_put_put_stl
- std::queue<int> adapter; /*<<Calls `adapter.push( t )` for [^t = 72, 31, 48]>>*/as2::put( adapter )( 72 )( 31 )( 48 );
- array<int, 3> array; /*<<Calls `array[i] = t` for [^( i, t ) = ( 0, 72 ), ( 1, 31 ), ( 2, 48 )]>>*/as2::put( array )( 72 )( 31 )( 48 );
- std::set<int> assoc; /*<<Calls `assoc.insert( t )` for [^t = 72, 31, 48]>>*/as2::put( assoc )( 72 )( 31 )( 48 );
- std::list<int> seq; /*<<Calls `seq.push_back( t )` for [^t = 72, 31, 48]>>*/as2::put( seq )( 72 )( 31 )( 48 );
- //]
- BOOST_ASSIGN_V2_CHECK( adapter.front() == 72 );
- BOOST_ASSIGN_V2_CHECK( adapter.back() == 48 );
- BOOST_ASSIGN_V2_CHECK( array.front() == 72 );
- BOOST_ASSIGN_V2_CHECK( array.back() == 48 );
- BOOST_ASSIGN_V2_CHECK( assoc.count( 48 ) == 1 );
- BOOST_ASSIGN_V2_CHECK( assoc.count( 72 ) == 1 );
- BOOST_ASSIGN_V2_CHECK( seq.front() == 72 );
- BOOST_ASSIGN_V2_CHECK( seq.back() == 48 );
+ //[test_csv_put_bitset
+ typedef std::string str_; typedef std::bitset<3> number;
+ std::vector<number> /*<<Note that although `number( str_( "011" ) )`, for instance, is valid, `range_3bit.push_back( str_( "011" ) )`>>*/ range_3bit;
+ /*<<Calls `range_3bit.push_back( number( t ) );` for [^t = ]`str_( "000" )`[^, ..., ]`str_( "111" )`>>*/as2::csv_put( range_3bit
+ , str_( "000" ), str_( "001" )
+ , str_( "010" ), str_( "011" )
+ , str_( "100" ), str_( "101" )
+ , str_( "110" ), str_( "111" )
+ );
+
+ for(unsigned i = 0; i < range_3bit.size(); i++)
+ {
+ BOOST_ASSIGN_V2_CHECK( range_3bit[i].to_ulong() == i );
+ }
+ //]
+ // unsigned i else warning comparison between signed & unsigned
}
{
// http://bioinfo.mbb.yale.edu/~mbg/dom/fun3/area-codes/
- //[test_put_put_area_codes
+ //[test_put_area_codes
typedef const char us_state_ [3]; us_state_ ct = "CT", nj = "NJ", ny = "NY";
typedef int area_code_;
typedef tuple<us_state_/*<<Notice the [*reference]>>*/&, area_code_> data_;
@@ -138,38 +144,52 @@
BOOST_ASSIGN_V2_CHECK( get<1>( region.front() ) == 212 );
BOOST_ASSIGN_V2_CHECK( get<0>( region.back() ) == ct );
}
+ //SET
+ {
+ //[test_csv_put_unordered_set
+ boost::unordered_set<std::string> set;
+ as2::csv_put( set, "foo", "bar", "baz" );
+
+ BOOST_ASSIGN_V2_CHECK( set.count( "foo" ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( set.count( "baz" ) == 1 );
+ //]
+ }
+ // MAP
{
- //[test_put_put_unordered_map
+ //[test_put_unordered_map
typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
boost::unordered_map<int, word_> map;
- as2::put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 1, foo, 3 )( 2, bar )( 3, baz, 3, 3 )( 4, "qux");
+ as2::put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 1, x, 3 )( 2, y )( 3, z, 3, 3 )( 4, "qux");
assert( map[1] == "foo" ); assert( map[2] == "bar" );
assert( map[3] == "baz" ); assert( map[4] == "qux" );
//]
}
- {
- //[test_put_put_unordered_set
- boost::unordered_set<std::string> set;
- as2::put( set )( "foo" )( "bar" )( "baz" );
+ {
+ //[test_csv_put_map
+ typedef std::string month_; typedef int days_;
+ typedef std::map<month_, days_> C;
+ typedef C::value_type T;
+ C map; as2::csv_put( map, T("jan", 31 ), T( "feb", 28 ), T( "mar", 31 ) );
- BOOST_ASSIGN_V2_CHECK( set.count( "foo" ) == 1 );
- BOOST_ASSIGN_V2_CHECK( set.count( "baz" ) == 1 );
+ BOOST_ASSIGN_V2_CHECK( map["jan"] == 31 );
+ BOOST_ASSIGN_V2_CHECK( map["mar"] == 31 );
//]
}
+ // OTHER
{
- //test_put_put_cb
+ //test_csv_put_cb
boost::circular_buffer<int> cb(3);
- as2::put( cb )( 1 )( 2 )( 3 );
+ as2::csv_put( cb, 1, 2, 3 );
BOOST_ASSIGN_V2_CHECK(
range::equal(cb, as2::csv_deque(1, 2, 3) )
);
- as2::put( cb )( 4 )( 5 );
+ as2::csv_put( cb, 4, 5 );
BOOST_ASSIGN_V2_CHECK(
range::equal(cb, as2::csv_deque(3, 4, 5) )
Modified: sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/test/unit_testing/csv.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -1,31 +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 LIBS_ASSIGN_V2_TEST_UNIT_TEST_CSV_ER_2010_CPP
-#define LIBS_ASSIGN_V2_TEST_UNIT_TEST_CSV_ER_2010_CPP
-
-#include <iostream> // needed?
-
-#include <boost/test/test_tools.hpp>
-#define BOOST_ASSIGN_V2_CHECK( p ) BOOST_CHECK( p )
-#include <libs/assign/v2/test/csv.cpp>
-
-#include <boost/test/unit_test.hpp>
-using boost::unit_test::test_suite;
-test_suite* init_unit_test_suite( int argc, char* argv[] )
-{
- test_suite* test = BOOST_TEST_SUITE( "BOOST_ASSIGN_V2" );
- using namespace test_assign_v2;
- {
- test->add( BOOST_TEST_CASE( &xxx_csv::test ) );
- }
- return test;
-}
-
-#endif // LIBS_ASSIGN_V2_TEST_UNIT_TEST_CSV_ER_2010_CPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/libs/assign/v2/tutorial.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/tutorial.cpp (original)
+++ sandbox/assign_v2/libs/assign/v2/tutorial.cpp 2011-04-03 11:10:19 EDT (Sun, 03 Apr 2011)
@@ -38,9 +38,10 @@
std::vector<int> numeric( 10 ); iota( numeric, 0 );
typedef std::string str_; typedef variant< int, str_ > data_;
array<data_, 16> keypad;
- put( keypad )
- ( "+" )( "-" )( "*" )( "/" )( "=" )( "." )
- ( as_arg_list( numeric ) );
+ csv_put( keypad
+ , "+", "-", "*", "/", "=", "."
+ , as_arg_list( numeric )
+ );
assert( get<str_>( keypad.front() ) == "+" );
assert( get<int>( keypad.back() ) == 9 );
@@ -105,11 +106,11 @@
{
//[tutorial_data_gen
typedef std::string word_;
- const char foo[] = "foo";
- const char bar[4] = { 'b', 'a', 'r', '\0' };
- word_ baz = "***baz";
+ const char x[] = "foo";
+ const char y[4] = { 'b', 'a', 'r', '\0' };
+ word_ z = "***baz";
std::map<int, word_> map;
- put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 1, foo, 3 )( 2, bar )( 3, baz, 3, 3 )( 4, "qux");
+ put( map )/*<<Calls `map.insert( 1, str_( foo, 3 ) )`>>*/( 1, x, 3 )( 2, y )( 3, z, 3, 3 )( 4, "qux");
assert( map[1] == "foo" ); assert( map[2] == "bar" );
assert( map[3] == "baz" ); assert( map[4] == "qux" );
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