From a009ac5eb3650aecfbdda6783e4c347d096d6658 Mon Sep 17 00:00:00 2001 From: Aleksey Gurtovoy Date: Wed, 10 Nov 2004 23:38:18 +0000 Subject: [PATCH] final fixes [SVN r26175] --- include/boost/mpl/aux_/iterator_names.hpp | 28 --- include/boost/mpl/aux_/msvc_eti_base.hpp | 2 + include/boost/mpl/aux_/numeric_op.hpp | 1 + include/boost/mpl/aux_/partition_op.hpp | 18 +- include/boost/mpl/aux_/range_c/iterator.hpp | 78 ++++++-- include/boost/mpl/aux_/range_c/tag.hpp | 2 +- include/boost/mpl/aux_/sequence_wrapper.hpp | 7 +- .../boost/mpl/aux_/single_element_iter.hpp | 130 ++++++------- include/boost/mpl/aux_/sort_impl.hpp | 129 ++++++------ include/boost/mpl/distance_fwd.hpp | 2 +- include/boost/mpl/list.hpp | 8 +- .../mpl/list/aux_/include_preprocessed.hpp | 6 +- include/boost/mpl/list/aux_/numbered_c.hpp | 2 + .../list/aux_/preprocessed/plain/list10_c.hpp | 10 + .../list/aux_/preprocessed/plain/list20_c.hpp | 10 + .../list/aux_/preprocessed/plain/list30_c.hpp | 10 + .../list/aux_/preprocessed/plain/list40_c.hpp | 10 + .../list/aux_/preprocessed/plain/list50_c.hpp | 10 + include/boost/mpl/list/list0_c.hpp | 1 + include/boost/mpl/list_c.hpp | 8 +- include/boost/mpl/numeric_cast.hpp | 59 ------ include/boost/mpl/pair_view.hpp | 158 +++++++-------- include/boost/mpl/partition.hpp | 43 ++-- include/boost/mpl/range_c.hpp | 8 +- include/boost/mpl/set/aux_/numbered_c.hpp | 7 +- .../set/aux_/preprocessed/plain/set10_c.hpp | 145 ++++++++++++++ .../set/aux_/preprocessed/plain/set20_c.hpp | 154 +++++++++++++++ .../set/aux_/preprocessed/plain/set30_c.hpp | 164 ++++++++++++++++ .../set/aux_/preprocessed/plain/set40_c.hpp | 174 +++++++++++++++++ .../set/aux_/preprocessed/plain/set50_c.hpp | 184 ++++++++++++++++++ include/boost/mpl/set/set0_c.hpp | 2 + include/boost/mpl/set_c.hpp | 14 +- include/boost/mpl/single_view.hpp | 4 +- include/boost/mpl/sort.hpp | 19 +- include/boost/mpl/sort_fwd.hpp | 29 --- include/boost/mpl/stable_partition.hpp | 63 ++++-- include/boost/mpl/vector.hpp | 8 +- .../mpl/vector/aux_/include_preprocessed.hpp | 20 +- include/boost/mpl/vector/aux_/iterator.hpp | 10 +- include/boost/mpl/vector/aux_/numbered_c.hpp | 3 + .../aux_/preprocessed/no_ctps/vector10_c.hpp | 20 ++ .../aux_/preprocessed/no_ctps/vector20_c.hpp | 20 ++ .../aux_/preprocessed/no_ctps/vector30_c.hpp | 20 ++ .../aux_/preprocessed/no_ctps/vector40_c.hpp | 20 ++ .../aux_/preprocessed/no_ctps/vector50_c.hpp | 20 ++ .../aux_/preprocessed/plain/vector10_c.hpp | 20 ++ .../aux_/preprocessed/plain/vector20_c.hpp | 20 ++ .../aux_/preprocessed/plain/vector30_c.hpp | 20 ++ .../aux_/preprocessed/plain/vector40_c.hpp | 20 ++ .../aux_/preprocessed/plain/vector50_c.hpp | 20 ++ .../preprocessed/typeof_based/vector10_c.hpp | 10 + .../preprocessed/typeof_based/vector20_c.hpp | 10 + .../preprocessed/typeof_based/vector30_c.hpp | 10 + .../preprocessed/typeof_based/vector40_c.hpp | 10 + .../preprocessed/typeof_based/vector50_c.hpp | 10 + include/boost/mpl/vector/vector0_c.hpp | 2 + include/boost/mpl/vector_c.hpp | 8 +- 57 files changed, 1552 insertions(+), 448 deletions(-) delete mode 100644 include/boost/mpl/aux_/iterator_names.hpp create mode 100644 include/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp create mode 100644 include/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp create mode 100644 include/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp create mode 100644 include/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp create mode 100644 include/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp delete mode 100644 include/boost/mpl/sort_fwd.hpp diff --git a/include/boost/mpl/aux_/iterator_names.hpp b/include/boost/mpl/aux_/iterator_names.hpp deleted file mode 100644 index dcaa558..0000000 --- a/include/boost/mpl/aux_/iterator_names.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ITERATOR_NAMES_HPP_INCLUDED -#define BOOST_MPL_AUX_ITERATOR_NAMES_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Source$ -// $Date$ -// $Revision$ - -#include -#include - -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# define BOOST_MPL_AUX_ITERATOR_ADVANCE advance -# define BOOST_MPL_AUX_ITERATOR_DISTANCE distance_to -#else -# define BOOST_MPL_AUX_ITERATOR_ADVANCE advance_ -# define BOOST_MPL_AUX_ITERATOR_DISTANCE distance_to -#endif - -#endif // BOOST_MPL_AUX_ITERATOR_NAMES_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/msvc_eti_base.hpp b/include/boost/mpl/aux_/msvc_eti_base.hpp index 486772a..fa10296 100644 --- a/include/boost/mpl/aux_/msvc_eti_base.hpp +++ b/include/boost/mpl/aux_/msvc_eti_base.hpp @@ -40,6 +40,7 @@ template<> struct msvc_eti_base_impl typedef result_ first; typedef result_ second; typedef result_ tag; + enum { value = 0 }; }; }; @@ -68,6 +69,7 @@ template<> struct msvc_eti_base typedef msvc_eti_base first; typedef msvc_eti_base second; typedef msvc_eti_base tag; + enum { value = 0 }; }; }}} diff --git a/include/boost/mpl/aux_/numeric_op.hpp b/include/boost/mpl/aux_/numeric_op.hpp index 9470e70..6242ab9 100644 --- a/include/boost/mpl/aux_/numeric_op.hpp +++ b/include/boost/mpl/aux_/numeric_op.hpp @@ -22,6 +22,7 @@ # include # include # include +# include # include # include # include diff --git a/include/boost/mpl/aux_/partition_op.hpp b/include/boost/mpl/aux_/partition_op.hpp index 00b4cbc..9a0911c 100644 --- a/include/boost/mpl/aux_/partition_op.hpp +++ b/include/boost/mpl/aux_/partition_op.hpp @@ -3,6 +3,7 @@ #define BOOST_MPL_AUX_PARTITION_OP_HPP_INCLUDED // Copyright Eric Friedman 2003 +// Copyright Aleksey Gurtovoy 2004 // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -18,33 +19,28 @@ #include #include #include -#include -#include #include namespace boost { namespace mpl { namespace aux { -template +template< typename Pred, typename In1Op, typename In2Op > struct partition_op { - template + template< typename State, typename T > struct apply { - private: typedef typename State::first first_; typedef typename State::second second_; - typedef typename deref::type t_; - typedef typename apply1< Predicate,t_ >::type pred_; + typedef typename apply1< Pred,T >::type pred_; typedef typename eval_if< pred_ - , push_front< first_, t_ > - , push_front< second_, t_ > + , apply2 + , apply2 >::type result_; - public: typedef typename if_< pred_ , pair< result_,second_ > @@ -55,7 +51,7 @@ struct partition_op } // namespace aux -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,aux::partition_op) +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, aux::partition_op) }} diff --git a/include/boost/mpl/aux_/range_c/iterator.hpp b/include/boost/mpl/aux_/range_c/iterator.hpp index 11f4b91..1c8b6f0 100644 --- a/include/boost/mpl/aux_/range_c/iterator.hpp +++ b/include/boost/mpl/aux_/range_c/iterator.hpp @@ -15,35 +15,85 @@ // $Revision$ #include +#include +#include #include +#include #include #include -#include +#include +#include namespace boost { namespace mpl { -template< typename N > -struct rc_iter +// theoretically will work on any discrete numeric type +template< typename N > struct r_iter { - typedef aux::rc_iter_tag tag; + typedef aux::r_iter_tag tag; typedef random_access_iterator_tag category; typedef N type; - typedef rc_iter::type> next; - typedef rc_iter::type> prior; +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + typedef r_iter< typename mpl::next::type > next; + typedef r_iter< typename mpl::prior::type > prior; +#endif +}; - template< typename D > - struct BOOST_MPL_AUX_ITERATOR_ADVANCE +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + typename N + > +struct next< r_iter > +{ + typedef r_iter< typename mpl::next::type > type; +}; + +template< + typename N + > +struct prior< r_iter > +{ + typedef r_iter< typename mpl::prior::type > type; +}; + +#endif + + +template<> struct advance_impl +{ + template< typename Iter, typename Dist > struct apply { - typedef rc_iter< - typename plus::type - > type; + typedef typename Iter::type n_; + typedef typename plus::type m_; + + // agurt, 10/nov/04: to be generic, the code have to do something along + // the lines below... + // + // typedef typename apply_wrap1< + // numeric_cast< typename m_::tag, typename n_::tag > + // , m_ + // >::type result_; + // + // ... meanwhile: + + typedef integral_c< + typename n_::value_type + , BOOST_MPL_AUX_VALUE_WKND(m_)::value + > result_; + + typedef r_iter type; }; +}; - template< typename U > - struct BOOST_MPL_AUX_ITERATOR_DISTANCE +template<> struct distance_impl +{ + template< typename Iter1, typename Iter2 > struct apply + : minus< + typename Iter2::type + , typename Iter1::type + > { - typedef typename minus::type type; }; }; diff --git a/include/boost/mpl/aux_/range_c/tag.hpp b/include/boost/mpl/aux_/range_c/tag.hpp index 121e680..13d48d6 100644 --- a/include/boost/mpl/aux_/range_c/tag.hpp +++ b/include/boost/mpl/aux_/range_c/tag.hpp @@ -17,7 +17,7 @@ namespace boost { namespace mpl { namespace aux { struct half_open_range_tag; -struct rc_iter_tag; +struct r_iter_tag; }}} diff --git a/include/boost/mpl/aux_/sequence_wrapper.hpp b/include/boost/mpl/aux_/sequence_wrapper.hpp index f1b4b5c..ff13f30 100644 --- a/include/boost/mpl/aux_/sequence_wrapper.hpp +++ b/include/boost/mpl/aux_/sequence_wrapper.hpp @@ -36,6 +36,10 @@ namespace boost { namespace mpl { +#if !defined(AUX778076_SEQUENCE_BASE_NAME) +# define AUX778076_SEQUENCE_BASE_NAME AUX778076_SEQUENCE_NAME +#endif + #if !defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER) # define AUX778076_SEQUENCE_PARAM_NAME T @@ -43,7 +47,7 @@ namespace boost { namespace mpl { # define AUX778076_SEQUENCE_DEFAULT na # define AUX778076_SEQUENCE_NAME_N(n) \ - BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,n) \ + BOOST_PP_CAT(AUX778076_SEQUENCE_BASE_NAME,n) \ /**/ # define AUX778076_SEQUENCE_PARAMS() \ @@ -209,6 +213,7 @@ struct AUX778076_SEQUENCE_NAME # undef AUX778076_SEQUENCE_TEMPLATE_PARAM # undef AUX778076_SEQUENCE_PARAM_NAME # undef AUX778076_SEQUENCE_LIMIT +# undef AUX778076_SEQUENCE_BASE_NAME # undef AUX778076_SEQUENCE_NAME # undef AUX778076_SEQUENCE_INTEGRAL_WRAPPER diff --git a/include/boost/mpl/aux_/single_element_iter.hpp b/include/boost/mpl/aux_/single_element_iter.hpp index 6ecd7cd..13263d3 100644 --- a/include/boost/mpl/aux_/single_element_iter.hpp +++ b/include/boost/mpl/aux_/single_element_iter.hpp @@ -15,104 +15,104 @@ // $Revision$ #include -#include -#include +#include +#include +#include +#include #include -#include -#include -#include -#include #include +#include +#include namespace boost { namespace mpl { -namespace aux { - -template< typename T, int N > -struct single_element_iter; - -// random access support -template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct single_iter_base -{ - typedef random_access_iterator_tag category; - typedef mpl::int_ position; - - template< typename D > - struct BOOST_MPL_AUX_ITERATOR_ADVANCE - { - typedef plus< mpl::int_,D > n_; - typedef single_element_iter< - T - , BOOST_MPL_AUX_VALUE_WKND(n_)::value - > type; - }; - - template< typename U > - struct BOOST_MPL_AUX_ITERATOR_DISTANCE - { - typedef typename minus< - typename U::position - , mpl::int_ - >::type type; - }; -}; - #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +namespace aux { + +template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_) > +struct sel_iter; + template< typename T > -struct single_element_iter - : single_iter_base +struct sel_iter { - typedef single_element_iter next; + typedef random_access_iterator_tag category; + typedef sel_iter next; typedef T type; }; template< typename T > -struct single_element_iter - : single_iter_base +struct sel_iter +{ + typedef random_access_iterator_tag category; + typedef sel_iter prior; +}; + +} // namespace aux + +template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_), typename Distance > +struct advance< aux::sel_iter,Distance> +{ + typedef aux::sel_iter< + T + , ( is_last_ + BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Distance) ) + > type; +}; + +template< + typename T + , BOOST_MPL_AUX_NTTP_DECL(int, l1) + , BOOST_MPL_AUX_NTTP_DECL(int, l2) + > +struct distance< aux::sel_iter, aux::sel_iter > + : int_<( l2 - l1 )> { - typedef single_element_iter prior; }; #else -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct single_iter_impl +namespace aux { + +struct sel_iter_tag; + +template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_) > +struct sel_iter { - template< typename T > struct result_; + enum { pos_ = is_last_ }; + typedef aux::sel_iter_tag tag; + typedef random_access_iterator_tag category; + + typedef sel_iter next; + typedef sel_iter prior; + typedef T type; }; -template<> -struct single_iter_impl<0> +} // namespace aux + +template<> struct advance_impl { - template< typename T > struct result_ - : single_iter_base + template< typename Iterator, typename N > struct apply { - typedef single_element_iter next; - typedef T type; + enum { pos_ = Iterator::pos_, n_ = N::value }; + typedef aux::sel_iter< + typename Iterator::type + , (pos_ + n_) + > type; }; }; -template<> -struct single_iter_impl<1> +template<> struct distance_impl { - template< typename T > struct result_ - : single_iter_base + template< typename Iter1, typename Iter2 > struct apply { - typedef single_element_iter prior; + enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ }; + typedef int_<( pos2_ - pos1_ )> type; + BOOST_STATIC_CONSTANT(int, value = ( pos2_ - pos1_ )); }; }; -template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct single_element_iter - : single_iter_impl::template result_ -{ -}; - #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -} // namespace aux - }} #endif // BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/sort_impl.hpp b/include/boost/mpl/aux_/sort_impl.hpp index b645241..40c5433 100644 --- a/include/boost/mpl/aux_/sort_impl.hpp +++ b/include/boost/mpl/aux_/sort_impl.hpp @@ -14,91 +14,108 @@ // $Date$ // $Revision$ -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -namespace boost { namespace mpl { +namespace boost { namespace mpl { namespace aux { -namespace aux { +template< typename Seq, typename Pred > +struct quick_sort; -template < typename Sequence, typename Predicate > struct quick_sort; - -template +// agurt, 10/nov/04: for the sake of deficeint compilers +template< typename Pred, typename Pivot > struct quick_sort_pred { - template - struct apply + template< typename T > struct apply { - typedef typename apply2< Predicate, T, Pivot >::type - type; + typedef typename apply2::type type; }; }; -template +template< + typename Seq + , typename Pred + > struct quick_sort_impl { -private: - - typedef typename front::type pivot_; - typedef typename pop_front::type seq_; - + typedef typename begin::type pivot; typedef typename partition< - seq_ - , protect< quick_sort_pred > + iterator_range< + typename next::type + , typename end::type + > + , protect< aux::quick_sort_pred< Pred, typename deref::type > > + , back_inserter< vector<> > + , back_inserter< vector<> > >::type partitioned; - typedef typename quick_sort< - typename first::type, Predicate - >::type first_part; - typedef typename quick_sort< - typename second::type, Predicate - >::type second_part; - -public: - - typedef typename reverse_fold< - first_part - , typename push_front< second_part,pivot_ >::type - , push_front<_,_> - >::type type; + typedef typename quick_sort< typename partitioned::first, Pred >::type part1; + typedef typename quick_sort< typename partitioned::second, Pred >::type part2; + typedef joint_view< + joint_view< part1, single_view< typename deref::type > > + , part2 + > type; }; -template +template< + typename Seq + , typename Pred + > struct quick_sort : eval_if< - empty - , identity< Sequence > - , quick_sort_impl< Sequence,Predicate > + empty + , identity + , quick_sort_impl > { }; -} // namespace aux -template< typename Tag > +template < + typename Sequence + , typename Pred + , typename In + > struct sort_impl { - template< typename Sequence, typename Predicate > - struct apply - { - typedef typename aux::quick_sort< - Sequence, Predicate - >::type type; - }; + typedef typename quick_sort< + Sequence + , typename if_na >::type + >::type result_; + + typedef typename copy::type type; }; -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,sort_impl) +template < + typename Sequence + , typename Pred + , typename In + > +struct reverse_sort_impl +{ + typedef typename quick_sort< + Sequence + , typename if_na >::type + >::type result_; + + typedef typename reverse_copy::type type; +}; -}} +}}} #endif // BOOST_MPL_AUX_SORT_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/distance_fwd.hpp b/include/boost/mpl/distance_fwd.hpp index 66152cc..af80283 100644 --- a/include/boost/mpl/distance_fwd.hpp +++ b/include/boost/mpl/distance_fwd.hpp @@ -20,7 +20,7 @@ namespace boost { namespace mpl { BOOST_MPL_AUX_COMMON_NAME_WKND(distance) -template< typename Tag > struct advance_impl; +template< typename Tag > struct distance_impl; template< typename First, typename Last > struct distance; }} diff --git a/include/boost/mpl/list.hpp b/include/boost/mpl/list.hpp index f0fb45d..ee77abb 100644 --- a/include/boost/mpl/list.hpp +++ b/include/boost/mpl/list.hpp @@ -24,17 +24,17 @@ # include #if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ +# define AUX778076_LIST_HEADER \ BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \ /**/ #else -# define AUX778076_HEADER \ +# define AUX778076_LIST_HEADER \ BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \ /**/ #endif -# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER) -# undef AUX778076_HEADER +# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_HEADER) +# undef AUX778076_LIST_HEADER #endif #include diff --git a/include/boost/mpl/list/aux_/include_preprocessed.hpp b/include/boost/mpl/list/aux_/include_preprocessed.hpp index 1792f37..598fed8 100644 --- a/include/boost/mpl/list/aux_/include_preprocessed.hpp +++ b/include/boost/mpl/list/aux_/include_preprocessed.hpp @@ -16,12 +16,12 @@ #include #include -# define AUX_PREPROCESSED_HEADER \ +# define AUX778076_HEADER \ aux_/preprocessed/plain/BOOST_MPL_PREPROCESSED_HEADER \ /**/ -# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX_PREPROCESSED_HEADER) +# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER) -# undef AUX_PREPROCESSED_HEADER +# undef AUX778076_HEADER #undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/include/boost/mpl/list/aux_/numbered_c.hpp b/include/boost/mpl/list/aux_/numbered_c.hpp index 43b555d..86c8100 100644 --- a/include/boost/mpl/list/aux_/numbered_c.hpp +++ b/include/boost/mpl/list/aux_/numbered_c.hpp @@ -36,6 +36,7 @@ struct list1_c > { typedef list1_c type; + typedef T value_type; }; #else @@ -58,6 +59,7 @@ struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) > { typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type; + typedef T value_type; }; # undef MPL_AUX_LIST_C_TAIL diff --git a/include/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp b/include/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp index 3a3ee95..7133d71 100644 --- a/include/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +++ b/include/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp @@ -23,6 +23,7 @@ struct list1_c > { typedef list1_c type; + typedef T value_type; }; template< @@ -37,6 +38,7 @@ struct list2_c > { typedef list2_c type; + typedef T value_type; }; template< @@ -51,6 +53,7 @@ struct list3_c > { typedef list3_c type; + typedef T value_type; }; template< @@ -65,6 +68,7 @@ struct list4_c > { typedef list4_c type; + typedef T value_type; }; template< @@ -79,6 +83,7 @@ struct list5_c > { typedef list5_c type; + typedef T value_type; }; template< @@ -93,6 +98,7 @@ struct list6_c > { typedef list6_c type; + typedef T value_type; }; template< @@ -107,6 +113,7 @@ struct list7_c > { typedef list7_c type; + typedef T value_type; }; template< @@ -121,6 +128,7 @@ struct list8_c > { typedef list8_c type; + typedef T value_type; }; template< @@ -135,6 +143,7 @@ struct list9_c > { typedef list9_c type; + typedef T value_type; }; template< @@ -149,6 +158,7 @@ struct list10_c > { typedef list10_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp b/include/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp index 88fffd4..7f15acf 100644 --- a/include/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +++ b/include/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp @@ -23,6 +23,7 @@ struct list11_c > { typedef list11_c type; + typedef T value_type; }; template< @@ -38,6 +39,7 @@ struct list12_c > { typedef list12_c type; + typedef T value_type; }; template< @@ -53,6 +55,7 @@ struct list13_c > { typedef list13_c type; + typedef T value_type; }; template< @@ -68,6 +71,7 @@ struct list14_c > { typedef list14_c type; + typedef T value_type; }; template< @@ -83,6 +87,7 @@ struct list15_c > { typedef list15_c type; + typedef T value_type; }; template< @@ -98,6 +103,7 @@ struct list16_c > { typedef list16_c type; + typedef T value_type; }; template< @@ -113,6 +119,7 @@ struct list17_c > { typedef list17_c type; + typedef T value_type; }; template< @@ -128,6 +135,7 @@ struct list18_c > { typedef list18_c type; + typedef T value_type; }; template< @@ -143,6 +151,7 @@ struct list19_c > { typedef list19_c type; + typedef T value_type; }; template< @@ -158,6 +167,7 @@ struct list20_c > { typedef list20_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp b/include/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp index 72f1236..5393d79 100644 --- a/include/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +++ b/include/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp @@ -24,6 +24,7 @@ struct list21_c > { typedef list21_c type; + typedef T value_type; }; template< @@ -40,6 +41,7 @@ struct list22_c > { typedef list22_c type; + typedef T value_type; }; template< @@ -56,6 +58,7 @@ struct list23_c > { typedef list23_c type; + typedef T value_type; }; template< @@ -72,6 +75,7 @@ struct list24_c > { typedef list24_c type; + typedef T value_type; }; template< @@ -88,6 +92,7 @@ struct list25_c > { typedef list25_c type; + typedef T value_type; }; template< @@ -104,6 +109,7 @@ struct list26_c > { typedef list26_c type; + typedef T value_type; }; template< @@ -120,6 +126,7 @@ struct list27_c > { typedef list27_c type; + typedef T value_type; }; template< @@ -136,6 +143,7 @@ struct list28_c > { typedef list28_c type; + typedef T value_type; }; template< @@ -152,6 +160,7 @@ struct list29_c > { typedef list29_c type; + typedef T value_type; }; template< @@ -168,6 +177,7 @@ struct list30_c > { typedef list30_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp b/include/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp index 489d4fc..0c51ba2 100644 --- a/include/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +++ b/include/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp @@ -25,6 +25,7 @@ struct list31_c > { typedef list31_c type; + typedef T value_type; }; template< @@ -42,6 +43,7 @@ struct list32_c > { typedef list32_c type; + typedef T value_type; }; template< @@ -59,6 +61,7 @@ struct list33_c > { typedef list33_c type; + typedef T value_type; }; template< @@ -76,6 +79,7 @@ struct list34_c > { typedef list34_c type; + typedef T value_type; }; template< @@ -93,6 +97,7 @@ struct list35_c > { typedef list35_c type; + typedef T value_type; }; template< @@ -110,6 +115,7 @@ struct list36_c > { typedef list36_c type; + typedef T value_type; }; template< @@ -127,6 +133,7 @@ struct list37_c > { typedef list37_c type; + typedef T value_type; }; template< @@ -144,6 +151,7 @@ struct list38_c > { typedef list38_c type; + typedef T value_type; }; template< @@ -161,6 +169,7 @@ struct list39_c > { typedef list39_c type; + typedef T value_type; }; template< @@ -178,6 +187,7 @@ struct list40_c > { typedef list40_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp b/include/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp index 8e31ea6..28c061d 100644 --- a/include/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +++ b/include/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp @@ -26,6 +26,7 @@ struct list41_c > { typedef list41_c type; + typedef T value_type; }; template< @@ -44,6 +45,7 @@ struct list42_c > { typedef list42_c type; + typedef T value_type; }; template< @@ -62,6 +64,7 @@ struct list43_c > { typedef list43_c type; + typedef T value_type; }; template< @@ -80,6 +83,7 @@ struct list44_c > { typedef list44_c type; + typedef T value_type; }; template< @@ -98,6 +102,7 @@ struct list45_c > { typedef list45_c type; + typedef T value_type; }; template< @@ -116,6 +121,7 @@ struct list46_c > { typedef list46_c type; + typedef T value_type; }; template< @@ -134,6 +140,7 @@ struct list47_c > { typedef list47_c type; + typedef T value_type; }; template< @@ -152,6 +159,7 @@ struct list48_c > { typedef list48_c type; + typedef T value_type; }; template< @@ -170,6 +178,7 @@ struct list49_c > { typedef list49_c type; + typedef T value_type; }; template< @@ -188,6 +197,7 @@ struct list50_c > { typedef list50_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/list/list0_c.hpp b/include/boost/mpl/list/list0_c.hpp index ca964f4..b6f474c 100644 --- a/include/boost/mpl/list/list0_c.hpp +++ b/include/boost/mpl/list/list0_c.hpp @@ -23,6 +23,7 @@ template< typename T > struct list0_c : l_end { typedef l_end type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/list_c.hpp b/include/boost/mpl/list_c.hpp index 0c7b059..5240102 100644 --- a/include/boost/mpl/list_c.hpp +++ b/include/boost/mpl/list_c.hpp @@ -24,17 +24,17 @@ # include #if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ +# define AUX778076_LIST_C_HEADER \ BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE),_c).hpp \ /**/ #else -# define AUX778076_HEADER \ +# define AUX778076_LIST_C_HEADER \ BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE),_c)##.hpp \ /**/ #endif -# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER) -# undef AUX778076_HEADER +# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_C_HEADER) +# undef AUX778076_LIST_C_HEADER # include #endif diff --git a/include/boost/mpl/numeric_cast.hpp b/include/boost/mpl/numeric_cast.hpp index d9980b5..aaf3776 100644 --- a/include/boost/mpl/numeric_cast.hpp +++ b/include/boost/mpl/numeric_cast.hpp @@ -14,8 +14,6 @@ // $Date$ // $Revision$ -#include -#include #include #include @@ -38,63 +36,6 @@ template< typename SourceTag, typename TargetTag > struct BOOST_MPL_AUX_NUMERIC_ template< typename N > struct apply; }; - -namespace aux { - -template< - typename F - , typename Tag1 - , typename Tag2 - > -struct cast1st_impl -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : apply_wrap2< - F - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N1 >::type - , N2 - > - { -#else - { - typedef typename apply_wrap2< - F - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N1 >::type - , N2 - >::type type; -#endif - }; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - > -struct cast2nd_impl -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : apply_wrap2< - F - , N1 - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N2 >::type - > - { -#else - { - typedef typename apply_wrap2< - F - , N1 - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N2 >::type - >::type type; -#endif - }; -}; - -} // namespace aux - }} #endif // BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED diff --git a/include/boost/mpl/pair_view.hpp b/include/boost/mpl/pair_view.hpp index db3d2a7..a41aecb 100644 --- a/include/boost/mpl/pair_view.hpp +++ b/include/boost/mpl/pair_view.hpp @@ -24,132 +24,120 @@ #include #include #include -#include -#include -#include #include #include namespace boost { namespace mpl { +namespace aux { +struct pair_iter_tag; + #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename I1, typename I2, typename Category > +template< typename Iter1, typename Iter2, typename Category > struct pair_iter; -template< typename Category > -struct pair_iter_ops +template< typename Category > struct prior_pair_iter { - template< typename I1, typename I2 > struct result_ + template< typename Iter1, typename Iter2 > struct apply { - typedef typename mpl::next::type i1_; - typedef typename mpl::next::type i2_; - typedef pair_iter next; - typedef pair< typename deref::type, typename deref::type > type; + typedef typename mpl::prior::type i1_; + typedef typename mpl::prior::type i2_; + typedef pair_iter type; }; }; -template<> -struct pair_iter_ops +template<> struct prior_pair_iter { - template< typename I1, typename I2 > struct result_ + template< typename Iter1, typename Iter2 > struct apply { - typedef bidirectional_iterator_tag category; - - typedef typename mpl::next::type i1_; - typedef typename mpl::next::type i2_; - typedef pair_iter next; - - typedef typename mpl::prior::type k1_; - typedef typename mpl::prior::type k2_; - typedef pair_iter prior; + typedef pair_iter type; }; }; -template<> -struct pair_iter_ops -{ - template< typename I1, typename I2 > struct result_ - { - typedef random_access_iterator_tag category; - - typedef typename mpl::next::type i1_; - typedef typename mpl::next::type i2_; - typedef pair_iter next; - - typedef typename mpl::prior::type k1_; - typedef typename mpl::prior::type k2_; - typedef pair_iter prior; - - template< typename Distance > struct BOOST_MPL_AUX_ITERATOR_ADVANCE - { - typedef typename advance::type iter1_; - typedef typename advance::type iter2_; - typedef pair_iter type; - }; - - template< typename U > struct BOOST_MPL_AUX_ITERATOR_DISTANCE - : distance - { - }; - }; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - -template< typename I1, typename I2, typename Category > -struct pair_iter -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - : aux::msvc_eti_base< pair_iter_ops - ::template result_ >::type #endif +} + +template< + typename Iter1 + , typename Iter2 + , typename Category + > +struct pair_iter { + typedef aux::pair_iter_tag tag; typedef Category category; + typedef Iter1 first; + typedef Iter2 second; + +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + typedef pair< + typename deref::type + , typename deref::type + > type; + + typedef typename mpl::next::type i1_; + typedef typename mpl::next::type i2_; + typedef pair_iter next; + + typedef apply_wrap2< aux::prior_pair_iter,Iter1,Iter2 >::type prior; +#endif }; #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename I1, typename I2, typename C > -struct deref< pair_iter > +template< typename Iter1, typename Iter2, typename C > +struct deref< pair_iter > { - typedef pair< typename deref::type, typename deref::type > type; + typedef pair< + typename deref::type + , typename deref::type + > type; }; -template< typename I1, typename I2, typename C > -struct next< pair_iter > +template< typename Iter1, typename Iter2, typename C > +struct next< pair_iter > { - typedef typename mpl::next::type i1_; - typedef typename mpl::next::type i2_; + typedef typename mpl::next::type i1_; + typedef typename mpl::next::type i2_; typedef pair_iter type; }; -template< typename I1, typename I2, typename C > -struct prior< pair_iter > +template< typename Iter1, typename Iter2, typename C > +struct prior< pair_iter > { - typedef typename mpl::prior::type i1_; - typedef typename mpl::prior::type i2_; + typedef typename mpl::prior::type i1_; + typedef typename mpl::prior::type i2_; typedef pair_iter type; }; -template< typename I1, typename I2, typename C, typename Distance > -struct advance< pair_iter,Distance> -{ - typedef typename mpl::advance::type iter1_; - typedef typename mpl::advance::type iter2_; - typedef pair_iter type; -}; - -template< typename I1, typename I2, typename K1, typename K2, typename C > -struct distance< pair_iter, pair_iter > - : mpl::distance -{ -}; - #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION +template<> struct advance_impl +{ + template< typename Iter, typename D > struct apply + { + typedef typename mpl::advance< typename Iter::first,D >::type i1_; + typedef typename mpl::advance< typename Iter::second,D >::type i2_; + typedef pair_iter type; + }; +}; + +template<> struct distance_impl +{ + template< typename Iter1, typename Iter2 > struct apply + { + // agurt, 10/nov/04: MSVC 6.5 ICE-s on forwarding + typedef typename mpl::distance< + typename first::type + , typename first::type + >::type type; + }; +}; + + template< typename BOOST_MPL_AUX_NA_PARAM(Sequence1) , typename BOOST_MPL_AUX_NA_PARAM(Sequence2) diff --git a/include/boost/mpl/partition.hpp b/include/boost/mpl/partition.hpp index 7aaba62..3bb19e3 100644 --- a/include/boost/mpl/partition.hpp +++ b/include/boost/mpl/partition.hpp @@ -3,6 +3,7 @@ #define BOOST_MPL_PARTITION_HPP_INCLUDED // Copyright Eric Friedman 2002-2003 +// Copyright Aleksey Gurtovoy 2004 // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -14,32 +15,38 @@ // $Date$ // $Revision$ -#include -#include -#include -#include -#include -#include +#include +#include namespace boost { namespace mpl { +namespace aux { + template < - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Predicate) + typename Sequence + , typename Pred + , typename In1 + , typename In2 > -struct partition +struct partition_impl + : stable_partition_impl { - typedef typename clear::type cleared_; - typedef typename iter_fold< - Sequence - , pair< cleared_,cleared_ > - , aux::partition_op - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,partition,(Sequence,Predicate)) }; -BOOST_MPL_AUX_NA_SPEC(2, partition) +template < + typename Sequence + , typename Pred + , typename In1 + , typename In2 + > +struct reverse_partition_impl + : reverse_stable_partition_impl +{ +}; + +} // namespace aux + +BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, partition) }} diff --git a/include/boost/mpl/range_c.hpp b/include/boost/mpl/range_c.hpp index 948a4cd..cc60a6f 100644 --- a/include/boost/mpl/range_c.hpp +++ b/include/boost/mpl/range_c.hpp @@ -2,7 +2,7 @@ #ifndef BOOST_MPL_RANGE_C_HPP_INCLUDED #define BOOST_MPL_RANGE_C_HPP_INCLUDED -// Copyright Aleksey Gurtovoy 2000-2002 +// Copyright Aleksey Gurtovoy 2000-2004 // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -14,7 +14,6 @@ // $Date$ // $Revision$ - #include #include #include @@ -34,13 +33,14 @@ template< struct range_c { typedef aux::half_open_range_tag tag; + typedef T value_type; typedef range_c type; typedef integral_c start; typedef integral_c finish; - typedef rc_iter begin; - typedef rc_iter end; + typedef r_iter begin; + typedef r_iter end; }; }} diff --git a/include/boost/mpl/set/aux_/numbered_c.hpp b/include/boost/mpl/set/aux_/numbered_c.hpp index 4123ade..cc18a52 100644 --- a/include/boost/mpl/set/aux_/numbered_c.hpp +++ b/include/boost/mpl/set/aux_/numbered_c.hpp @@ -15,7 +15,8 @@ // $Date$ // $Revision$ -#include +#include +#include #include #include @@ -23,7 +24,7 @@ # define AUX778076_SET_C_TAIL(set, i_, T, C) \ BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c)< \ - T, BOOST_PP_ENUM_PARAMS(i_, C) \ + T BOOST_PP_ENUM_TRAILING_PARAMS(i_, C) \ > \ /**/ @@ -33,7 +34,7 @@ template< > struct BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c) : s_item< - integal_c + integral_c , AUX778076_SET_C_TAIL(set,BOOST_PP_DEC(i_), T, C) > { diff --git a/include/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp b/include/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp new file mode 100644 index 0000000..0b9ba2c --- /dev/null +++ b/include/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp @@ -0,0 +1,145 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// Copyright David Abrahams 2003-2004 +// +// Distributed under 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) +// + +// Preprocessed version of "boost/mpl/set/Attic/set10_c.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename T + , T C0 + > +struct set1_c + : s_item< + integral_c< T,C0 > + , set0_c + > +{ + typedef set1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct set2_c + : s_item< + integral_c< T,C1 > + , set1_c< T,C0 > + > +{ + typedef set2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct set3_c + : s_item< + integral_c< T,C2 > + , set2_c< T,C0,C1 > + > +{ + typedef set3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct set4_c + : s_item< + integral_c< T,C3 > + , set3_c< T,C0,C1,C2 > + > +{ + typedef set4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct set5_c + : s_item< + integral_c< T,C4 > + , set4_c< T,C0,C1,C2,C3 > + > +{ + typedef set5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct set6_c + : s_item< + integral_c< T,C5 > + , set5_c< T,C0,C1,C2,C3,C4 > + > +{ + typedef set6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct set7_c + : s_item< + integral_c< T,C6 > + , set6_c< T,C0,C1,C2,C3,C4,C5 > + > +{ + typedef set7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct set8_c + : s_item< + integral_c< T,C7 > + , set7_c< T,C0,C1,C2,C3,C4,C5,C6 > + > +{ + typedef set8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct set9_c + : s_item< + integral_c< T,C8 > + , set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef set9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct set10_c + : s_item< + integral_c< T,C9 > + , set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef set10_c type; +}; + +}} diff --git a/include/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp b/include/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp new file mode 100644 index 0000000..b160085 --- /dev/null +++ b/include/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp @@ -0,0 +1,154 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// Copyright David Abrahams 2003-2004 +// +// Distributed under 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) +// + +// Preprocessed version of "boost/mpl/set/Attic/set20_c.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct set11_c + : s_item< + integral_c< T,C10 > + , set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef set11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct set12_c + : s_item< + integral_c< T,C11 > + , set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef set12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct set13_c + : s_item< + integral_c< T,C12 > + , set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef set13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct set14_c + : s_item< + integral_c< T,C13 > + , set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef set14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct set15_c + : s_item< + integral_c< T,C14 > + , set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef set15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct set16_c + : s_item< + integral_c< T,C15 > + , set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef set16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct set17_c + : s_item< + integral_c< T,C16 > + , set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef set17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct set18_c + : s_item< + integral_c< T,C17 > + , set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef set18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct set19_c + : s_item< + integral_c< T,C18 > + , set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef set19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct set20_c + : s_item< + integral_c< T,C19 > + , set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef set20_c type; +}; + +}} diff --git a/include/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp b/include/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp new file mode 100644 index 0000000..32c40bf --- /dev/null +++ b/include/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp @@ -0,0 +1,164 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// Copyright David Abrahams 2003-2004 +// +// Distributed under 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) +// + +// Preprocessed version of "boost/mpl/set/Attic/set30_c.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct set21_c + : s_item< + integral_c< T,C20 > + , set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef set21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct set22_c + : s_item< + integral_c< T,C21 > + , set21_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef set22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct set23_c + : s_item< + integral_c< T,C22 > + , set22_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef set23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct set24_c + : s_item< + integral_c< T,C23 > + , set23_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef set24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct set25_c + : s_item< + integral_c< T,C24 > + , set24_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef set25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct set26_c + : s_item< + integral_c< T,C25 > + , set25_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef set26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct set27_c + : s_item< + integral_c< T,C26 > + , set26_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef set27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct set28_c + : s_item< + integral_c< T,C27 > + , set27_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef set28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct set29_c + : s_item< + integral_c< T,C28 > + , set28_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef set29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct set30_c + : s_item< + integral_c< T,C29 > + , set29_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef set30_c type; +}; + +}} diff --git a/include/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp b/include/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp new file mode 100644 index 0000000..37e5039 --- /dev/null +++ b/include/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp @@ -0,0 +1,174 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// Copyright David Abrahams 2003-2004 +// +// Distributed under 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) +// + +// Preprocessed version of "boost/mpl/set/Attic/set40_c.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct set31_c + : s_item< + integral_c< T,C30 > + , set30_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef set31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct set32_c + : s_item< + integral_c< T,C31 > + , set31_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef set32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct set33_c + : s_item< + integral_c< T,C32 > + , set32_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef set33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct set34_c + : s_item< + integral_c< T,C33 > + , set33_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef set34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct set35_c + : s_item< + integral_c< T,C34 > + , set34_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef set35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct set36_c + : s_item< + integral_c< T,C35 > + , set35_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef set36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct set37_c + : s_item< + integral_c< T,C36 > + , set36_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef set37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct set38_c + : s_item< + integral_c< T,C37 > + , set37_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef set38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct set39_c + : s_item< + integral_c< T,C38 > + , set38_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef set39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct set40_c + : s_item< + integral_c< T,C39 > + , set39_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef set40_c type; +}; + +}} diff --git a/include/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp b/include/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp new file mode 100644 index 0000000..6523288 --- /dev/null +++ b/include/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp @@ -0,0 +1,184 @@ + +// Copyright Aleksey Gurtovoy 2000-2004 +// Copyright David Abrahams 2003-2004 +// +// Distributed under 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) +// + +// Preprocessed version of "boost/mpl/set/Attic/set50_c.hpp" header +// -- DO NOT modify by hand! + +namespace boost { namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct set41_c + : s_item< + integral_c< T,C40 > + , set40_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef set41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct set42_c + : s_item< + integral_c< T,C41 > + , set41_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef set42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct set43_c + : s_item< + integral_c< T,C42 > + , set42_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef set43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct set44_c + : s_item< + integral_c< T,C43 > + , set43_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef set44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct set45_c + : s_item< + integral_c< T,C44 > + , set44_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef set45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct set46_c + : s_item< + integral_c< T,C45 > + , set45_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef set46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct set47_c + : s_item< + integral_c< T,C46 > + , set46_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef set47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct set48_c + : s_item< + integral_c< T,C47 > + , set47_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef set48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct set49_c + : s_item< + integral_c< T,C48 > + , set48_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef set49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct set50_c + : s_item< + integral_c< T,C49 > + , set49_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef set50_c type; +}; + +}} diff --git a/include/boost/mpl/set/set0_c.hpp b/include/boost/mpl/set/set0_c.hpp index 63bb0a5..7394103 100644 --- a/include/boost/mpl/set/set0_c.hpp +++ b/include/boost/mpl/set/set0_c.hpp @@ -16,6 +16,7 @@ // $Revision$ #include +#include namespace boost { namespace mpl { @@ -23,6 +24,7 @@ template< typename T > struct set0_c : set0<> { typedef set0_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/set_c.hpp b/include/boost/mpl/set_c.hpp index ebfbe70..72cbf19 100644 --- a/include/boost/mpl/set_c.hpp +++ b/include/boost/mpl/set_c.hpp @@ -24,17 +24,17 @@ # include #if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_VECTOR_SIZE),_c).hpp \ +# define AUX778076_SET_C_HEADER \ + BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_SET_SIZE),_c).hpp \ /**/ #else -# define AUX778076_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_VECTOR_SIZE),_c)##.hpp \ +# define AUX778076_SET_C_HEADER \ + BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_SET_SIZE),_c)##.hpp \ /**/ #endif -# include BOOST_PP_STRINGIZE(boost/mpl/set/AUX778076_HEADER) -# undef AUX778076_HEADER +# include BOOST_PP_STRINGIZE(boost/mpl/set/AUX778076_SET_C_HEADER) +# undef AUX778076_SET_C_HEADER # include #endif @@ -51,7 +51,7 @@ # include # define AUX778076_SEQUENCE_NAME set_c -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE +# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_SET_SIZE # define AUX778076_SEQUENCE_NAME_N(n) BOOST_PP_CAT(BOOST_PP_CAT(set,n),_c) # define AUX778076_SEQUENCE_INTEGRAL_WRAPPER # include diff --git a/include/boost/mpl/single_view.hpp b/include/boost/mpl/single_view.hpp index e419147..153a7e0 100644 --- a/include/boost/mpl/single_view.hpp +++ b/include/boost/mpl/single_view.hpp @@ -25,8 +25,8 @@ template< > struct single_view : iterator_range< - aux::single_element_iter - , aux::single_element_iter + aux::sel_iter + , aux::sel_iter > { }; diff --git a/include/boost/mpl/sort.hpp b/include/boost/mpl/sort.hpp index 2930aa2..f304cba 100644 --- a/include/boost/mpl/sort.hpp +++ b/include/boost/mpl/sort.hpp @@ -15,27 +15,12 @@ // $Date$ // $Revision$ -#include -#include -#include #include -#include -#include +#include namespace boost { namespace mpl { -template < - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename Predicate = less<_,_> - > -struct sort - : sort_impl< typename sequence_tag::type > - ::template apply< Sequence,Predicate > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,sort,(Sequence,Predicate)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, sort) +BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, sort) }} diff --git a/include/boost/mpl/sort_fwd.hpp b/include/boost/mpl/sort_fwd.hpp deleted file mode 100644 index 2806baf..0000000 --- a/include/boost/mpl/sort_fwd.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef BOOST_MPL_SORT_FWD_HPP_INCLUDED -#define BOOST_MPL_SORT_FWD_HPP_INCLUDED - -// Copyright Eric Friedman 2002-2003 -// Copyright Aleksey Gurtovoy 2004 -// -// Distributed under 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Source$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(sort) - -template< typename Tag > struct sort_impl; -template< typename Sequence, typename Predicate > struct sort; - -}} - -#endif // BOOST_MPL_SORT_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/stable_partition.hpp b/include/boost/mpl/stable_partition.hpp index 39ba7ef..7ce5ff9 100644 --- a/include/boost/mpl/stable_partition.hpp +++ b/include/boost/mpl/stable_partition.hpp @@ -3,6 +3,7 @@ #define BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED // Copyright Eric Friedman 2002-2003 +// Copyright Aleksey Gurtovoy 2004 // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at @@ -14,32 +15,60 @@ // $Date$ // $Revision$ +#include +#include +#include #include -#include -#include -#include -#include -#include +#include +#include namespace boost { namespace mpl { +namespace aux { + template < - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Predicate) + typename Sequence + , typename Pred + , typename In + , typename In2 + , typename In1 = typename if_na::type > -struct stable_partition -{ - typedef typename clear::type cleared_; - typedef typename reverse_iter_fold< +struct stable_partition_impl + : fold< Sequence - , pair< cleared_,cleared_ > - , aux::partition_op - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,stable_partition,(Sequence,Predicate)) + , pair< typename In1::state, typename In2::state > + , protect< partition_op< + Pred + , typename In1::operation + , typename In2::operation + > > + > +{ }; -BOOST_MPL_AUX_NA_SPEC(2, stable_partition) +template < + typename Sequence + , typename Pred + , typename In + , typename In2 + , typename In1 = typename if_na::type + > +struct reverse_stable_partition_impl + : reverse_fold< + Sequence + , pair< typename In1::state, typename In2::state > + , protect< partition_op< + Pred + , typename In1::operation + , typename In2::operation + > > + > +{ +}; + +} // namespace aux + +BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, stable_partition) }} diff --git a/include/boost/mpl/vector.hpp b/include/boost/mpl/vector.hpp index be9cacf..b10d14c 100644 --- a/include/boost/mpl/vector.hpp +++ b/include/boost/mpl/vector.hpp @@ -24,17 +24,17 @@ # include #if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ +# define AUX778076_VECTOR_HEADER \ BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \ /**/ #else -# define AUX778076_HEADER \ +# define AUX778076_VECTOR_HEADER \ BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \ /**/ #endif -# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_HEADER) -# undef AUX778076_HEADER +# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_VECTOR_HEADER) +# undef AUX778076_VECTOR_HEADER #endif #include diff --git a/include/boost/mpl/vector/aux_/include_preprocessed.hpp b/include/boost/mpl/vector/aux_/include_preprocessed.hpp index 479b7e8..ee2f77d 100644 --- a/include/boost/mpl/vector/aux_/include_preprocessed.hpp +++ b/include/boost/mpl/vector/aux_/include_preprocessed.hpp @@ -21,28 +21,28 @@ #include #if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) -# define AUX_VECTOR_INCLIDE_DIR typeof_based +# define AUX778076_INCLUDE_DIR typeof_based #elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) -# define AUX_VECTOR_INCLIDE_DIR no_ctps +# define AUX778076_INCLUDE_DIR no_ctps #else -# define AUX_VECTOR_INCLIDE_DIR plain +# define AUX778076_INCLUDE_DIR plain #endif #if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX_PREPROCESSED_HEADER \ - AUX_VECTOR_INCLIDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \ +# define AUX778076_HEADER \ + AUX778076_INCLUDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \ /**/ #else -# define AUX_PREPROCESSED_HEADER \ - BOOST_PP_CAT(AUX_VECTOR_INCLIDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \ +# define AUX778076_HEADER \ + BOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \ /**/ #endif -# include BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX_PREPROCESSED_HEADER) +# include BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX778076_HEADER) -# undef AUX_PREPROCESSED_HEADER -# undef AUX_VECTOR_INCLIDE_DIR +# undef AUX778076_HEADER +# undef AUX778076_INCLUDE_DIR #undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/include/boost/mpl/vector/aux_/iterator.hpp b/include/boost/mpl/vector/aux_/iterator.hpp index fdec16f..58d31a5 100644 --- a/include/boost/mpl/vector/aux_/iterator.hpp +++ b/include/boost/mpl/vector/aux_/iterator.hpp @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include @@ -114,6 +113,15 @@ template<> struct advance_impl }; }; +template<> struct distance_impl +{ + template< typename Iter1, typename Iter2 > struct apply + { + enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ }; + typedef long_<( pos2_ - pos1_ )> type; + BOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ )); + }; +}; #endif diff --git a/include/boost/mpl/vector/aux_/numbered_c.hpp b/include/boost/mpl/vector/aux_/numbered_c.hpp index 37afe54..ed47c28 100644 --- a/include/boost/mpl/vector/aux_/numbered_c.hpp +++ b/include/boost/mpl/vector/aux_/numbered_c.hpp @@ -44,6 +44,7 @@ struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) > { typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type; + typedef T value_type; }; #endif @@ -63,6 +64,8 @@ template< struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) : BOOST_PP_CAT(vector,i_)< BOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) > { + typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type; + typedef T value_type; }; # undef AUX778076_VECTOR_C_PARAM_FUNC diff --git a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp index bb198b2..8b36f6a 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp @@ -18,6 +18,8 @@ template< struct vector1_c : vector1< integral_c< T,C0 > > { + typedef vector1_c type; + typedef T value_type; }; template< @@ -27,6 +29,8 @@ template< struct vector2_c : vector2< integral_c< T,C0 >, integral_c< T,C1 > > { + typedef vector2_c type; + typedef T value_type; }; template< @@ -36,6 +40,8 @@ template< struct vector3_c : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > > { + typedef vector3_c type; + typedef T value_type; }; template< @@ -48,6 +54,8 @@ struct vector4_c , C3> > { + typedef vector4_c type; + typedef T value_type; }; template< @@ -60,6 +68,8 @@ struct vector5_c , integral_c< T,C3 >, integral_c< T,C4 > > { + typedef vector5_c type; + typedef T value_type; }; template< @@ -72,6 +82,8 @@ struct vector6_c , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > > { + typedef vector6_c type; + typedef T value_type; }; template< @@ -85,6 +97,8 @@ struct vector7_c , C6> > { + typedef vector7_c type; + typedef T value_type; }; template< @@ -98,6 +112,8 @@ struct vector8_c , integral_c< T,C7 > > { + typedef vector8_c type; + typedef T value_type; }; template< @@ -111,6 +127,8 @@ struct vector9_c , integral_c< T,C7 >, integral_c< T,C8 > > { + typedef vector9_c type; + typedef T value_type; }; template< @@ -124,6 +142,8 @@ struct vector10_c , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > > { + typedef vector10_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp index 797ecae..56ca53f 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp @@ -23,6 +23,8 @@ struct vector11_c , C10> > { + typedef vector11_c type; + typedef T value_type; }; template< @@ -38,6 +40,8 @@ struct vector12_c , integral_c< T,C10 >, integral_c< T,C11 > > { + typedef vector12_c type; + typedef T value_type; }; template< @@ -53,6 +57,8 @@ struct vector13_c , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > > { + typedef vector13_c type; + typedef T value_type; }; template< @@ -69,6 +75,8 @@ struct vector14_c , C13> > { + typedef vector14_c type; + typedef T value_type; }; template< @@ -85,6 +93,8 @@ struct vector15_c , integral_c< T,C13 >, integral_c< T,C14 > > { + typedef vector15_c type; + typedef T value_type; }; template< @@ -101,6 +111,8 @@ struct vector16_c , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > > { + typedef vector16_c type; + typedef T value_type; }; template< @@ -118,6 +130,8 @@ struct vector17_c , C16> > { + typedef vector17_c type; + typedef T value_type; }; template< @@ -135,6 +149,8 @@ struct vector18_c , integral_c< T,C16 >, integral_c< T,C17 > > { + typedef vector18_c type; + typedef T value_type; }; template< @@ -152,6 +168,8 @@ struct vector19_c , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > > { + typedef vector19_c type; + typedef T value_type; }; template< @@ -170,6 +188,8 @@ struct vector20_c , C19> > { + typedef vector20_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp index a4b2e24..6251dbc 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp @@ -27,6 +27,8 @@ struct vector21_c , integral_c< T,C19 >, integral_c< T,C20 > > { + typedef vector21_c type; + typedef T value_type; }; template< @@ -46,6 +48,8 @@ struct vector22_c , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > > { + typedef vector22_c type; + typedef T value_type; }; template< @@ -66,6 +70,8 @@ struct vector23_c , C22> > { + typedef vector23_c type; + typedef T value_type; }; template< @@ -86,6 +92,8 @@ struct vector24_c , integral_c< T,C22 >, integral_c< T,C23 > > { + typedef vector24_c type; + typedef T value_type; }; template< @@ -106,6 +114,8 @@ struct vector25_c , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > > { + typedef vector25_c type; + typedef T value_type; }; template< @@ -127,6 +137,8 @@ struct vector26_c , C25> > { + typedef vector26_c type; + typedef T value_type; }; template< @@ -148,6 +160,8 @@ struct vector27_c , integral_c< T,C25 >, integral_c< T,C26 > > { + typedef vector27_c type; + typedef T value_type; }; template< @@ -169,6 +183,8 @@ struct vector28_c , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > > { + typedef vector28_c type; + typedef T value_type; }; template< @@ -191,6 +207,8 @@ struct vector29_c , C28> > { + typedef vector29_c type; + typedef T value_type; }; template< @@ -213,6 +231,8 @@ struct vector30_c , integral_c< T,C28 >, integral_c< T,C29 > > { + typedef vector30_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp index 7f77259..ba0ffa8 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp @@ -31,6 +31,8 @@ struct vector31_c , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > > { + typedef vector31_c type; + typedef T value_type; }; template< @@ -55,6 +57,8 @@ struct vector32_c , C31> > { + typedef vector32_c type; + typedef T value_type; }; template< @@ -79,6 +83,8 @@ struct vector33_c , integral_c< T,C31 >, integral_c< T,C32 > > { + typedef vector33_c type; + typedef T value_type; }; template< @@ -103,6 +109,8 @@ struct vector34_c , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > > { + typedef vector34_c type; + typedef T value_type; }; template< @@ -128,6 +136,8 @@ struct vector35_c , C34> > { + typedef vector35_c type; + typedef T value_type; }; template< @@ -153,6 +163,8 @@ struct vector36_c , integral_c< T,C34 >, integral_c< T,C35 > > { + typedef vector36_c type; + typedef T value_type; }; template< @@ -178,6 +190,8 @@ struct vector37_c , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > > { + typedef vector37_c type; + typedef T value_type; }; template< @@ -204,6 +218,8 @@ struct vector38_c , C37> > { + typedef vector38_c type; + typedef T value_type; }; template< @@ -230,6 +246,8 @@ struct vector39_c , integral_c< T,C37 >, integral_c< T,C38 > > { + typedef vector39_c type; + typedef T value_type; }; template< @@ -256,6 +274,8 @@ struct vector40_c , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > > { + typedef vector40_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp index 2b4e133..e07f2b3 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp @@ -36,6 +36,8 @@ struct vector41_c , C40> > { + typedef vector41_c type; + typedef T value_type; }; template< @@ -64,6 +66,8 @@ struct vector42_c , integral_c< T,C40 >, integral_c< T,C41 > > { + typedef vector42_c type; + typedef T value_type; }; template< @@ -92,6 +96,8 @@ struct vector43_c , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > > { + typedef vector43_c type; + typedef T value_type; }; template< @@ -121,6 +127,8 @@ struct vector44_c , C43> > { + typedef vector44_c type; + typedef T value_type; }; template< @@ -150,6 +158,8 @@ struct vector45_c , integral_c< T,C43 >, integral_c< T,C44 > > { + typedef vector45_c type; + typedef T value_type; }; template< @@ -179,6 +189,8 @@ struct vector46_c , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > > { + typedef vector46_c type; + typedef T value_type; }; template< @@ -209,6 +221,8 @@ struct vector47_c , C46> > { + typedef vector47_c type; + typedef T value_type; }; template< @@ -239,6 +253,8 @@ struct vector48_c , integral_c< T,C46 >, integral_c< T,C47 > > { + typedef vector48_c type; + typedef T value_type; }; template< @@ -269,6 +285,8 @@ struct vector49_c , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > > { + typedef vector49_c type; + typedef T value_type; }; template< @@ -300,6 +318,8 @@ struct vector50_c , C49> > { + typedef vector50_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp index bb198b2..8b36f6a 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp @@ -18,6 +18,8 @@ template< struct vector1_c : vector1< integral_c< T,C0 > > { + typedef vector1_c type; + typedef T value_type; }; template< @@ -27,6 +29,8 @@ template< struct vector2_c : vector2< integral_c< T,C0 >, integral_c< T,C1 > > { + typedef vector2_c type; + typedef T value_type; }; template< @@ -36,6 +40,8 @@ template< struct vector3_c : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > > { + typedef vector3_c type; + typedef T value_type; }; template< @@ -48,6 +54,8 @@ struct vector4_c , C3> > { + typedef vector4_c type; + typedef T value_type; }; template< @@ -60,6 +68,8 @@ struct vector5_c , integral_c< T,C3 >, integral_c< T,C4 > > { + typedef vector5_c type; + typedef T value_type; }; template< @@ -72,6 +82,8 @@ struct vector6_c , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > > { + typedef vector6_c type; + typedef T value_type; }; template< @@ -85,6 +97,8 @@ struct vector7_c , C6> > { + typedef vector7_c type; + typedef T value_type; }; template< @@ -98,6 +112,8 @@ struct vector8_c , integral_c< T,C7 > > { + typedef vector8_c type; + typedef T value_type; }; template< @@ -111,6 +127,8 @@ struct vector9_c , integral_c< T,C7 >, integral_c< T,C8 > > { + typedef vector9_c type; + typedef T value_type; }; template< @@ -124,6 +142,8 @@ struct vector10_c , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > > { + typedef vector10_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp index 797ecae..56ca53f 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp @@ -23,6 +23,8 @@ struct vector11_c , C10> > { + typedef vector11_c type; + typedef T value_type; }; template< @@ -38,6 +40,8 @@ struct vector12_c , integral_c< T,C10 >, integral_c< T,C11 > > { + typedef vector12_c type; + typedef T value_type; }; template< @@ -53,6 +57,8 @@ struct vector13_c , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > > { + typedef vector13_c type; + typedef T value_type; }; template< @@ -69,6 +75,8 @@ struct vector14_c , C13> > { + typedef vector14_c type; + typedef T value_type; }; template< @@ -85,6 +93,8 @@ struct vector15_c , integral_c< T,C13 >, integral_c< T,C14 > > { + typedef vector15_c type; + typedef T value_type; }; template< @@ -101,6 +111,8 @@ struct vector16_c , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > > { + typedef vector16_c type; + typedef T value_type; }; template< @@ -118,6 +130,8 @@ struct vector17_c , C16> > { + typedef vector17_c type; + typedef T value_type; }; template< @@ -135,6 +149,8 @@ struct vector18_c , integral_c< T,C16 >, integral_c< T,C17 > > { + typedef vector18_c type; + typedef T value_type; }; template< @@ -152,6 +168,8 @@ struct vector19_c , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > > { + typedef vector19_c type; + typedef T value_type; }; template< @@ -170,6 +188,8 @@ struct vector20_c , C19> > { + typedef vector20_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp index a4b2e24..6251dbc 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp @@ -27,6 +27,8 @@ struct vector21_c , integral_c< T,C19 >, integral_c< T,C20 > > { + typedef vector21_c type; + typedef T value_type; }; template< @@ -46,6 +48,8 @@ struct vector22_c , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > > { + typedef vector22_c type; + typedef T value_type; }; template< @@ -66,6 +70,8 @@ struct vector23_c , C22> > { + typedef vector23_c type; + typedef T value_type; }; template< @@ -86,6 +92,8 @@ struct vector24_c , integral_c< T,C22 >, integral_c< T,C23 > > { + typedef vector24_c type; + typedef T value_type; }; template< @@ -106,6 +114,8 @@ struct vector25_c , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > > { + typedef vector25_c type; + typedef T value_type; }; template< @@ -127,6 +137,8 @@ struct vector26_c , C25> > { + typedef vector26_c type; + typedef T value_type; }; template< @@ -148,6 +160,8 @@ struct vector27_c , integral_c< T,C25 >, integral_c< T,C26 > > { + typedef vector27_c type; + typedef T value_type; }; template< @@ -169,6 +183,8 @@ struct vector28_c , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > > { + typedef vector28_c type; + typedef T value_type; }; template< @@ -191,6 +207,8 @@ struct vector29_c , C28> > { + typedef vector29_c type; + typedef T value_type; }; template< @@ -213,6 +231,8 @@ struct vector30_c , integral_c< T,C28 >, integral_c< T,C29 > > { + typedef vector30_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp index 7f77259..ba0ffa8 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp @@ -31,6 +31,8 @@ struct vector31_c , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > > { + typedef vector31_c type; + typedef T value_type; }; template< @@ -55,6 +57,8 @@ struct vector32_c , C31> > { + typedef vector32_c type; + typedef T value_type; }; template< @@ -79,6 +83,8 @@ struct vector33_c , integral_c< T,C31 >, integral_c< T,C32 > > { + typedef vector33_c type; + typedef T value_type; }; template< @@ -103,6 +109,8 @@ struct vector34_c , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > > { + typedef vector34_c type; + typedef T value_type; }; template< @@ -128,6 +136,8 @@ struct vector35_c , C34> > { + typedef vector35_c type; + typedef T value_type; }; template< @@ -153,6 +163,8 @@ struct vector36_c , integral_c< T,C34 >, integral_c< T,C35 > > { + typedef vector36_c type; + typedef T value_type; }; template< @@ -178,6 +190,8 @@ struct vector37_c , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > > { + typedef vector37_c type; + typedef T value_type; }; template< @@ -204,6 +218,8 @@ struct vector38_c , C37> > { + typedef vector38_c type; + typedef T value_type; }; template< @@ -230,6 +246,8 @@ struct vector39_c , integral_c< T,C37 >, integral_c< T,C38 > > { + typedef vector39_c type; + typedef T value_type; }; template< @@ -256,6 +274,8 @@ struct vector40_c , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > > { + typedef vector40_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp index 2b4e133..e07f2b3 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp @@ -36,6 +36,8 @@ struct vector41_c , C40> > { + typedef vector41_c type; + typedef T value_type; }; template< @@ -64,6 +66,8 @@ struct vector42_c , integral_c< T,C40 >, integral_c< T,C41 > > { + typedef vector42_c type; + typedef T value_type; }; template< @@ -92,6 +96,8 @@ struct vector43_c , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > > { + typedef vector43_c type; + typedef T value_type; }; template< @@ -121,6 +127,8 @@ struct vector44_c , C43> > { + typedef vector44_c type; + typedef T value_type; }; template< @@ -150,6 +158,8 @@ struct vector45_c , integral_c< T,C43 >, integral_c< T,C44 > > { + typedef vector45_c type; + typedef T value_type; }; template< @@ -179,6 +189,8 @@ struct vector46_c , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > > { + typedef vector46_c type; + typedef T value_type; }; template< @@ -209,6 +221,8 @@ struct vector47_c , C46> > { + typedef vector47_c type; + typedef T value_type; }; template< @@ -239,6 +253,8 @@ struct vector48_c , integral_c< T,C46 >, integral_c< T,C47 > > { + typedef vector48_c type; + typedef T value_type; }; template< @@ -269,6 +285,8 @@ struct vector49_c , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > > { + typedef vector49_c type; + typedef T value_type; }; template< @@ -300,6 +318,8 @@ struct vector50_c , C49> > { + typedef vector50_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp index 8ddfb96..18eabc6 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp @@ -22,6 +22,7 @@ struct vector1_c > { typedef vector1_c type; + typedef T value_type; }; template< @@ -35,6 +36,7 @@ struct vector2_c > { typedef vector2_c type; + typedef T value_type; }; template< @@ -48,6 +50,7 @@ struct vector3_c > { typedef vector3_c type; + typedef T value_type; }; template< @@ -61,6 +64,7 @@ struct vector4_c > { typedef vector4_c type; + typedef T value_type; }; template< @@ -74,6 +78,7 @@ struct vector5_c > { typedef vector5_c type; + typedef T value_type; }; template< @@ -87,6 +92,7 @@ struct vector6_c > { typedef vector6_c type; + typedef T value_type; }; template< @@ -100,6 +106,7 @@ struct vector7_c > { typedef vector7_c type; + typedef T value_type; }; template< @@ -113,6 +120,7 @@ struct vector8_c > { typedef vector8_c type; + typedef T value_type; }; template< @@ -126,6 +134,7 @@ struct vector9_c > { typedef vector9_c type; + typedef T value_type; }; template< @@ -139,6 +148,7 @@ struct vector10_c > { typedef vector10_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp index a6b6b0d..4bf6742 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp @@ -22,6 +22,7 @@ struct vector11_c > { typedef vector11_c type; + typedef T value_type; }; template< @@ -36,6 +37,7 @@ struct vector12_c > { typedef vector12_c type; + typedef T value_type; }; template< @@ -50,6 +52,7 @@ struct vector13_c > { typedef vector13_c type; + typedef T value_type; }; template< @@ -64,6 +67,7 @@ struct vector14_c > { typedef vector14_c type; + typedef T value_type; }; template< @@ -78,6 +82,7 @@ struct vector15_c > { typedef vector15_c type; + typedef T value_type; }; template< @@ -92,6 +97,7 @@ struct vector16_c > { typedef vector16_c type; + typedef T value_type; }; template< @@ -106,6 +112,7 @@ struct vector17_c > { typedef vector17_c type; + typedef T value_type; }; template< @@ -120,6 +127,7 @@ struct vector18_c > { typedef vector18_c type; + typedef T value_type; }; template< @@ -134,6 +142,7 @@ struct vector19_c > { typedef vector19_c type; + typedef T value_type; }; template< @@ -148,6 +157,7 @@ struct vector20_c > { typedef vector20_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp index d58606e..5741bb4 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp @@ -23,6 +23,7 @@ struct vector21_c > { typedef vector21_c type; + typedef T value_type; }; template< @@ -38,6 +39,7 @@ struct vector22_c > { typedef vector22_c type; + typedef T value_type; }; template< @@ -53,6 +55,7 @@ struct vector23_c > { typedef vector23_c type; + typedef T value_type; }; template< @@ -68,6 +71,7 @@ struct vector24_c > { typedef vector24_c type; + typedef T value_type; }; template< @@ -83,6 +87,7 @@ struct vector25_c > { typedef vector25_c type; + typedef T value_type; }; template< @@ -98,6 +103,7 @@ struct vector26_c > { typedef vector26_c type; + typedef T value_type; }; template< @@ -113,6 +119,7 @@ struct vector27_c > { typedef vector27_c type; + typedef T value_type; }; template< @@ -128,6 +135,7 @@ struct vector28_c > { typedef vector28_c type; + typedef T value_type; }; template< @@ -143,6 +151,7 @@ struct vector29_c > { typedef vector29_c type; + typedef T value_type; }; template< @@ -158,6 +167,7 @@ struct vector30_c > { typedef vector30_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp index 8d4ab0b..88d742e 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp @@ -24,6 +24,7 @@ struct vector31_c > { typedef vector31_c type; + typedef T value_type; }; template< @@ -40,6 +41,7 @@ struct vector32_c > { typedef vector32_c type; + typedef T value_type; }; template< @@ -56,6 +58,7 @@ struct vector33_c > { typedef vector33_c type; + typedef T value_type; }; template< @@ -72,6 +75,7 @@ struct vector34_c > { typedef vector34_c type; + typedef T value_type; }; template< @@ -88,6 +92,7 @@ struct vector35_c > { typedef vector35_c type; + typedef T value_type; }; template< @@ -104,6 +109,7 @@ struct vector36_c > { typedef vector36_c type; + typedef T value_type; }; template< @@ -120,6 +126,7 @@ struct vector37_c > { typedef vector37_c type; + typedef T value_type; }; template< @@ -136,6 +143,7 @@ struct vector38_c > { typedef vector38_c type; + typedef T value_type; }; template< @@ -152,6 +160,7 @@ struct vector39_c > { typedef vector39_c type; + typedef T value_type; }; template< @@ -168,6 +177,7 @@ struct vector40_c > { typedef vector40_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp index 54b73e8..f56d6af 100644 --- a/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +++ b/include/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp @@ -25,6 +25,7 @@ struct vector41_c > { typedef vector41_c type; + typedef T value_type; }; template< @@ -42,6 +43,7 @@ struct vector42_c > { typedef vector42_c type; + typedef T value_type; }; template< @@ -59,6 +61,7 @@ struct vector43_c > { typedef vector43_c type; + typedef T value_type; }; template< @@ -76,6 +79,7 @@ struct vector44_c > { typedef vector44_c type; + typedef T value_type; }; template< @@ -93,6 +97,7 @@ struct vector45_c > { typedef vector45_c type; + typedef T value_type; }; template< @@ -110,6 +115,7 @@ struct vector46_c > { typedef vector46_c type; + typedef T value_type; }; template< @@ -127,6 +133,7 @@ struct vector47_c > { typedef vector47_c type; + typedef T value_type; }; template< @@ -144,6 +151,7 @@ struct vector48_c > { typedef vector48_c type; + typedef T value_type; }; template< @@ -161,6 +169,7 @@ struct vector49_c > { typedef vector49_c type; + typedef T value_type; }; template< @@ -178,6 +187,7 @@ struct vector50_c > { typedef vector50_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector/vector0_c.hpp b/include/boost/mpl/vector/vector0_c.hpp index 3f2255a..b225491 100644 --- a/include/boost/mpl/vector/vector0_c.hpp +++ b/include/boost/mpl/vector/vector0_c.hpp @@ -15,6 +15,7 @@ // $Revision$ #include +#include namespace boost { namespace mpl { @@ -22,6 +23,7 @@ template< typename T > struct vector0_c : vector0<> { typedef vector0_c type; + typedef T value_type; }; }} diff --git a/include/boost/mpl/vector_c.hpp b/include/boost/mpl/vector_c.hpp index 450760d..7f5cb4f 100644 --- a/include/boost/mpl/vector_c.hpp +++ b/include/boost/mpl/vector_c.hpp @@ -24,17 +24,17 @@ # include #if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ +# define AUX778076_VECTOR_C_HEADER \ BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE),_c).hpp \ /**/ #else -# define AUX778076_HEADER \ +# define AUX778076_VECTOR_C_HEADER \ BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE),_c)##.hpp \ /**/ #endif -# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_HEADER) -# undef AUX778076_HEADER +# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_VECTOR_C_HEADER) +# undef AUX778076_VECTOR_C_HEADER # include #endif