Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70676 - in sandbox/assign_v2/boost/assign/v2: detail detail/functor detail/traits detail/traits/aux_ interpreter option option/data_generator
From: erwann.rogard_at_[hidden]
Date: 2011-03-28 19:25:40


Author: e_r
Date: 2011-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
New Revision: 70676
URL: http://svn.boost.org/trac/boost/changeset/70676

Log:
upd assign_v2
Text files modified:
   sandbox/assign_v2/boost/assign/v2/detail/functor.hpp | 4
   sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp | 98 ---------------------------------------
   sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp | 6 ++
   sandbox/assign_v2/boost/assign/v2/detail/keyword.hpp | 1
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp | 91 ++++++++++++++++++++----------------
   sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/value_container.hpp | 20 ++++++++
   sandbox/assign_v2/boost/assign/v2/detail/traits/container.hpp | 24 ++------
   sandbox/assign_v2/boost/assign/v2/interpreter/data_generator.hpp | 21 ++++++--
   sandbox/assign_v2/boost/assign/v2/option/data_generator.hpp | 1
   sandbox/assign_v2/boost/assign/v2/option/data_generator/framework.hpp | 74 ++++++++++++++++++++++++-----
   sandbox/assign_v2/boost/assign/v2/option/data_generator/key.hpp | 79 -------------------------------
   11 files changed, 163 insertions(+), 256 deletions(-)

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-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -10,7 +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/constructor.hpp>
-#include <boost/assign/v2/detail/functor/new.hpp>
+#include <boost/assign/v2/detail/functor/pair.hpp>
+#include <boost/assign/v2/detail/functor/value.hpp>
 
 #endif // BOOST_ASSIGN_V2_DETAIL_FUNCTOR_ER_2010_HPP

Modified: sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor/constructor.hpp 2011-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -1,97 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-// Boost.Assign v2 //
-// //
-// Copyright (C) 2003-2004 Thorsten Ottosen //
-// Copyright (C) 2010 Erwann Rogard //
-// Use, modification and distribution are subject to the //
-// Boost Software License, Version 1.0. (See accompanying file //
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_DETAIL_FUNCTOR_CONSTRUCTOR_ER_2010_HPP
-#define BOOST_ASSIGN_V2_DETAIL_FUNCTOR_CONSTRUCTOR_ER_2010_HPP
-#include <boost/assign/v2/detail/config/enable_cpp0x.hpp>
-#include <boost/assign/v2/detail/keyword/nil.hpp>
-#include <boost/assign/v2/detail/pp/ignore.hpp>
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-#include <utility>
-#else
-#include <boost/assign/v2/detail/config/limit_arity.hpp>
-#include <boost/assign/v2/detail/functor/crtp_unary_and_up.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/preprocessor/arithmetic.hpp>
-#include <boost/preprocessor/repetition.hpp>
-#endif
-
-namespace boost{
-namespace assign{
-namespace v2{
-//syntax_detail_functor_constructor
-namespace functor_aux{
-
- template<typename T = keyword_aux::nil>
- class constructor/*<-*/
-#if !BOOST_ASSIGN_V2_ENABLE_CPP0X
- : public functor_aux::crtp_unary_and_up<
- functor_aux::constructor<T>,
- ::boost::mpl::always<T>
- >
-#endif
- /*->*/
- {
-//<-
- typedef functor_aux::constructor<T> this_;
-//->
- public:
-
- constructor()/*<-*/{}BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-
-//<-
- template<typename U>
- constructor<U> type()const{ return constructor<U>(); }
-
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
-//->
- template<typename... Args>
- T operator()(Args&&...args)const/*<-*/
- {
- return T( std::forward<Args>(args)... );
- }/*->*/BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
-//<-
-
-#else
-
- protected:
- typedef ::boost::mpl::always<T> meta_result_;
- typedef functor_aux::crtp_unary_and_up<this_, meta_result_> super_;
-
- public:
-
- using super_::operator();
- T operator()()const{ return T(); }
-
-#define BOOST_ASSIGN_V2_MACRO(z, N,data) \
- template<BOOST_PP_ENUM_PARAMS(N, typename T)> \
- T impl( BOOST_PP_ENUM_BINARY_PARAMS(N, T, &_) )const{ \
- return T( BOOST_PP_ENUM_PARAMS(N, _) ); \
- } \
-/**/
-BOOST_PP_REPEAT_FROM_TO(
- 1,
- BOOST_PP_INC(BOOST_ASSIGN_V2_LIMIT_ARITY),
- BOOST_ASSIGN_V2_MACRO,
- ~
-)
-#undef BOOST_ASSIGN_V2_MACRO
-
-#endif // BOOST_ASSIGN_V2_ENABLE_CPP0X
-
-//->
- };
-
-}// functor_aux
-//]
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_DETAIL_FUNCTOR_CONSTRUCTOR_ER_2010_HPP
+// TODO remove file
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/functor/crtp_unary_and_up.hpp 2011-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -78,12 +78,16 @@
         ::boost::mpl::vector<BOOST_ASSIGN_V2_TPL_ARG_LIST(SeqU)> \
>::type \
     operator()( BOOST_ASSIGN_V2_PARAMETER_LIST(SeqU, _) )const{ \
- return this->derived().template impl<BOOST_ASSIGN_V2_TPL_ARG_LIST(SeqU)>( \
+ return this->derived().impl( \
             BOOST_ASSIGN_V2_ARG_LIST(SeqU, _) \
         ); \
     } \
 /**/
 
+// TODO remove
+// return this->derived().template impl<BOOST_ASSIGN_V2_TPL_ARG_LIST(SeqU)>( \
+
+
 #define BOOST_ASSIGN_V2_MACRO2(z, n, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT(\
     BOOST_ASSIGN_V2_MACRO1, \
     BOOST_PP_SEQ_FIRST_N(BOOST_PP_INC(n), BOOST_ASSIGN_V2_SEQ_TPL_BINARY_ARG_LIST)\

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-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -9,6 +9,7 @@
 //////////////////////////////////////////////////////////////////////////////
 #ifndef BOOST_ASSIGN_V2_DETAIL_KEYWORD_ER_2010_HPP
 #define BOOST_ASSIGN_V2_DETAIL_KEYWORD_ER_2010_HPP
+#include <boost/assign/v2/detail/keyword/key.hpp>
 #include <boost/assign/v2/detail/keyword/ignore.hpp>
 #include <boost/assign/v2/detail/keyword/nil.hpp>
 

Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/aux_/ptr_container.hpp 2011-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -14,17 +14,50 @@
 #include <utility> // std::pair
 #include <boost/assign/v2/detail/traits/aux_/fwd_container.hpp>
 #include <boost/mpl/size_t.hpp>
+#include <boost/type_traits/remove_reference.hpp>
 
 namespace boost{
 namespace assign{
 namespace v2{
 namespace container_aux{
 
- // FWD
     
- template<typename C> struct mapped;
- template<typename C> struct key;
- template<typename C> struct value; // Some specializations below
+ // DATA-MEMBER
+
+ template<typename PtrC>
+ struct to_value_key{ typedef typename PtrC::key_type type; };
+
+ template<typename PtrC>
+ struct to_value_value : boost::remove_reference<
+ typename PtrC::reference
+ >{};
+
+ template<typename PtrC>
+ struct to_value_mapped : boost::remove_reference<
+ typename PtrC::mapped_reference
+ >{};
+
+ template
+ <
+ class Key,
+ class Mapped,
+ class Compare,
+ class CloneAllocator,
+ class Allocator
+ >
+ struct to_value_value<
+ boost::ptr_map<Key, Mapped, Compare, CloneAllocator, Allocator>
+ >{
+
+ typedef boost::ptr_map<
+ Key, Mapped, Compare, CloneAllocator, Allocator
+ > ptr_c_;
+ typedef std::pair<
+ const typename to_value_key<ptr_c_>::type,
+ typename to_value_mapped<ptr_c_>::type
+ > type;
+ };
+
 
 
     // ALLOCATOR
@@ -32,7 +65,7 @@
     template<typename PtrC>
     struct to_value_allocator
     {
- typedef std::allocator<typename value<PtrC>::type> type;
+ typedef std::allocator<typename to_value_value<PtrC>::type> type;
     };
 
 
@@ -50,7 +83,7 @@
     struct to_value_array
     {
         typedef boost::array<
- typename value<PtrC>::type,
+ typename to_value_value<PtrC>::type,
             helper_size<PtrC>::value
> type;
     };
@@ -61,7 +94,7 @@
     struct to_value_sequence {
 
         typedef C<
- typename value<PtrC>::type,
+ typename to_value_value<PtrC>::type,
             typename to_value_allocator<PtrC>::type
> type;
 
@@ -75,15 +108,11 @@
>
     struct to_value_map{
 
- typedef typename key<PtrC>::type k_;
- typedef typename mapped<PtrC>::type m_;
- typedef std::pair<const k_, m_> p_;
-
         typedef C<
- k_,
- m_,
+ typename to_value_key<PtrC>::type,
+ typename to_value_mapped<PtrC>::type,
             typename PtrC::key_compare,
- std::allocator<p_>
+ typename to_value_allocator<PtrC>::type
> type;
 
     };
@@ -94,7 +123,7 @@
     struct to_value_set{
 
         typedef C<
- typename PtrC::key_type,
+ typename to_value_key<PtrC>::type,
             typename PtrC::key_compare,
             typename to_value_allocator<PtrC>::type
> type;
@@ -108,8 +137,8 @@
     struct to_value_unordered_map{
 
         typedef C<
- typename PtrC::key_type,
- typename mapped<PtrC>::type,
+ typename to_value_key<PtrC>::type,
+ typename to_value_mapped<PtrC>::type,
             typename PtrC::hasher,
             typename PtrC::key_equal,
             typename to_value_allocator<PtrC>::type
@@ -124,7 +153,7 @@
     struct to_value_unordered_set{
 
         typedef C<
- typename PtrC::key_type,
+ typename to_value_key<PtrC>::type,
             typename PtrC::hasher,
             typename PtrC::key_equal,
             typename to_value_allocator<PtrC>::type
@@ -134,11 +163,10 @@
 
     // TO_VALUE_CONTAINER
 
- template<typename C>
- struct to_value_container
- {
- typedef C type;
- };
+ template<
+ typename C // Pointer or Value container
+ >
+ struct to_value_container{ typedef C type; };
 
     // Array
     template<
@@ -207,23 +235,6 @@
         std::map
>{};
 
-
- template
- <
- class Key,
- class Mapped,
- class Compare,
- class CloneAllocator,
- class Allocator
- >
- struct value<
- boost::ptr_map<Key, Mapped, Compare, CloneAllocator, Allocator>
- > : value<
- typename to_value_container<
- boost::ptr_map<Key, Mapped, Compare, CloneAllocator, Allocator>
- >::type
- >{};
-
     // Set
 
     template

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-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -101,6 +101,26 @@
 
 namespace container_aux{
 
+// DATA-MEMBER
+
+ template<
+ typename C // Ptr or value container
+ >
+ struct value_key{ typedef typename C::key_type type; };
+
+ template<
+ typename C // Ptr or value container
+ >
+ struct value_value{ typedef typename C::value_type type; };
+
+ template<
+ typename C // Ptr or value container
+ >
+ struct value_mapped{
+ typedef typename C::mapped_type type;
+ };
+
+
 // HAS_VALUE
 
     template<typename T>

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-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -39,24 +39,14 @@
 
 // DATA-MEMBER
 
- template<
- typename C // Ptr or value container
- >
- struct key{ typedef typename C::key_type type; };
-
- template<
- typename C // Ptr or value container
- >
- struct value : boost::remove_reference<
- typename C::reference
- >{};
+ template<typename C>
+ struct key : through_value_container<value_key, C>{};
 
- template<
- typename C // Ptr or value container
- >
- struct mapped : boost::remove_reference<
- typename C::mapped_reference
- >{};
+ template<typename C>
+ struct mapped : through_value_container<value_mapped, C>{};
+
+ template<typename C>
+ struct value : through_value_container<value_value, C>{};
 
 // STORAGE
 

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-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -10,8 +10,8 @@
 #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/constructor.hpp>
-#include <boost/mpl/eval_if.hpp>
+#include <boost/assign/v2/detail/functor/pair.hpp>
+#include <boost/assign/v2/detail/functor/value.hpp>
     
 namespace boost{
 namespace assign{
@@ -22,13 +22,22 @@
 
     template<
         typename C // Value or pointer-container
- , template<typename> class F = container_aux::value
+ , typename T/*->*/ = typename v2::container_aux::value<C>::type/*->*/
+ , bool is_map/*->*/ = v2::container_aux::is_map<C>::value/*->*/
>
     struct deduce_data_generator/*<-*/
     {
- typedef functor_aux::constructor<
- typename F<C>::type
- > type;
+ typedef v2::functor_aux::value<T> type;
+ }/*->*/;
+
+ template<typename C, typename T>
+ struct deduce_data_generator<C, T, true>/*<-*/
+ {
+ typedef v2::functor_aux::pair<
+ T,
+ typename container_aux::key<C>::type,
+ typename container_aux::mapped<C>::type
+ > type;
     }/*->*/;
 
 }// interpreter_aux

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-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -10,6 +10,5 @@
 #ifndef BOOST_ASSIGN_V2_OPTION_DATA_GENERATOR_ER_2010_HPP
 #define BOOST_ASSIGN_V2_OPTION_DATA_GENERATOR_ER_2010_HPP
 #include <boost/assign/v2/option/data_generator/framework.hpp>
-#include <boost/assign/v2/option/data_generator/key.hpp>
 
 #endif // BOOST_ASSIGN_V2_OPTION_DATA_GENERATOR_ER_2010_HPP
\ No newline at end of file

Modified: sandbox/assign_v2/boost/assign/v2/option/data_generator/framework.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/data_generator/framework.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/data_generator/framework.hpp 2011-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -16,24 +16,46 @@
 #include <boost/mpl/apply.hpp>
 
 namespace boost{
+ struct use_default;
 namespace assign{
 namespace v2{
 //[syntax_option_data_generator
 namespace interpreter_aux{
 namespace result_of{
 
- template<typename D>
- struct option_data_generator/*<-*/{
-
- typedef interpreter_aux::replace_data_generator<D> meta_;
+ 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 F // Data generator to replace D with
+ template<typename D, typename C>
+ struct option_data_generator<D, C, use_default>/*<-*/
+ : option_data_generator<
+ D, C, typename deduce_data_generator<C>::type
>
- struct apply/*<-*/ : ::boost::mpl::apply1<meta_, F>{}/*->*/;
+ {}/*->*/;
 
- };
+ template<
+ typename C // Value or pointer-container
+ >
+ struct deduce_key_generator/*<-*/
+ {
+ typedef typename container_aux::key<C>::type key_;
+ typedef functor_aux::value<key_> type;
+ }/*->*/;
+
+ 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
+ >
+ {}/*->*/;
 
+
 }// result_of
 
     template<typename F/*<-*/= keyword_aux::ignore/*->*/>
@@ -42,23 +64,47 @@
         option_data_generator(){}
         option_data_generator(F f) : f_( f ){}
 
+ template<typename C>
         F const& fun()const{ return this->f_; }
-
+
         private:
         F f_;
     }/*->*/;
 
+ template<>
+ struct option_data_generator<keyword_aux::default_>/*<-*/
+ {
+ option_data_generator(){}
+
+ template<typename C>
+ typename deduce_data_generator<C>::type
+ fun()const{ return typename deduce_data_generator<C>::type(); }
+
+ }/*->*/;
+
+ template<>
+ struct option_data_generator<keyword_aux::key>/*<-*/
+ {
+ option_data_generator(){}
+
+ template<typename C>
+ typename deduce_key_generator<C>::type
+ fun()const{ return typename deduce_key_generator<C>::type(); }
+
+ }/*->*/;
+
     // Overrides data generator
     template<typename C, typename F, typename ModifierTag
             , typename DataTag, typename D, typename F1>
- typename ::boost::mpl::apply1<result_of::option_data_generator<D>, F1>::type
+ typename result_of::option_data_generator<D, C, F1>::type
     operator%(
         interpreter_crtp<C, F, ModifierTag, DataTag, D> const& lhs,
         option_data_generator<F1> const& rhs
     )/*<-*/
     {
- typedef result_of::option_data_generator<D> meta_;
- typedef typename ::boost::mpl::apply1<meta_, F1>::type result_;
+ typedef typename result_of::option_data_generator<
+ D, C, F1
+ >::type result_
         return result_( lhs.container(), rhs.fun(), lhs.modifier );
     }/*<-*/BOOST_ASSIGN_V2_IGNORE(/*<-*/;/*->*/)/*->*/
 
@@ -113,8 +159,8 @@
 }\
 /**/
 
-#include <boost/assign/v2/detail/functor/constructor.hpp>
-BOOST_ASSIGN_V2_OPTION_DATA_GENERATE(constructor, v2::functor_aux::constructor<T>)
+#include <boost/assign/v2/detail/functor/value.hpp>
+BOOST_ASSIGN_V2_OPTION_DATA_GENERATE(value, v2::functor_aux::value<T>)
 
 #include <boost/typeof/typeof.hpp>
 #include <boost/type_traits/add_const.hpp>

Modified: sandbox/assign_v2/boost/assign/v2/option/data_generator/key.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/option/data_generator/key.hpp (original)
+++ sandbox/assign_v2/boost/assign/v2/option/data_generator/key.hpp 2011-03-28 19:25:39 EDT (Mon, 28 Mar 2011)
@@ -1,78 +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_OPTION_DATA_GENERATOR_KEY_ER_2010_HPP
-#define BOOST_ASSIGN_V2_OPTION_DATA_GENERATOR_KEY_ER_2010_HPP
-#include <boost/assign/v2/detail/traits/container.hpp>
-#include <boost/assign/v2/interpreter/data_generator.hpp>
-#include <boost/assign/v2/option/data_generator/framework.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/utility/enable_if.hpp>
-
-namespace boost{
-namespace assign{
-namespace v2{
-//[syntax_option_key
-namespace interpreter_aux{
-
- template<typename C>
- struct container_key{ typedef typename C::key_type type; };
-
- template<
- typename C // Value or pointer-container
- >
- struct deduce_key_generator/*<-*/
- : deduce_data_generator<C, container_key>
- {}/*->*/;
-
- struct option_key{};
-
-
-namespace result_of{
-
- template<typename C, typename D>
- struct option_key :
- ::boost::mpl::apply1<
- interpreter_aux::result_of::option_data_generator<D>,
- typename deduce_key_generator<C>::type
- >{};
-
-}//result_of
-
- // Overrides data generator with a constructor for C::key_type
- template<
- typename C // Associative container
- , typename F, typename ModifierTag, typename DataTag, typename D
- >
- typename /*<-*/boost::lazy_enable_if<
- container_aux::is_sorted<C>,/*->*/
- result_of::option_key<C, D>/*<-*/
- >::/*->*/type
- operator%(
- interpreter_crtp<C, F, ModifierTag, DataTag, D> const& lhs,
- option_key rhs
- )/*<-*/
- {
- typedef typename deduce_key_generator<C>::type gen_;
- return lhs % ( _data = gen_() );
- }/*<-*/BOOST_ASSIGN_V2_IGNORE(/*<-*/;/*->*/)/*->*/
-
-
-}// interpreter_aux
-//<-
-namespace{
-//->
- interpreter_aux::option_key const _key/*<-*/= interpreter_aux::option_key()/*->*/;
-//]
-}
-}// v2
-}// assign
-}// boost
-
-#endif // BOOST_ASSIGN_V2_OPTION_DATA_GENERATOR_KEY_ER_2010_HPP
+// TODO remove file
\ No newline at end of file


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk