diff --git a/doc/html/fusion/support/category_of.html b/doc/html/fusion/support/category_of.html index 8a7f5632..c9e03fff 100644 --- a/doc/html/fusion/support/category_of.html +++ b/doc/html/fusion/support/category_of.html @@ -119,14 +119,14 @@ struct single_pass_sequence_tag : incrementable_sequence_tag {}; - struct forward_sequence_tag + struct forward_traversal_tag : single_pass_sequence_tag {}; - struct bidirectional_sequence_tag - : forward_sequence_tag {}; + struct bidirectional_traversal_tag + : forward_traversal_tag {}; - struct random_access_sequence_tag - : bidirectional_sequence_tag {}; + struct random_access_traversal_tag + : bidirectional_traversal_tag {}; }}

@@ -157,8 +157,8 @@ using boost::is_base_of; typedef traits::category_of<list<> >::type list_category; typedef traits::category_of<vector<> >::type vector_category; -BOOST_MPL_ASSERT(( is_base_of<forward_sequence_tag, list_category> )); -BOOST_MPL_ASSERT(( is_base_of<random_access_sequence_tag, vector_category> )); +BOOST_MPL_ASSERT(( is_base_of<forward_traversal_tag, list_category> )); +BOOST_MPL_ASSERT(( is_base_of<random_access_traversal_tag, vector_category> )); diff --git a/doc/support.qbk b/doc/support.qbk index ee6059bf..5815c4ec 100644 --- a/doc/support.qbk +++ b/doc/support.qbk @@ -219,14 +219,14 @@ For Sequences, the return type is derived from one of: struct single_pass_sequence_tag : incrementable_sequence_tag {}; - struct forward_sequence_tag + struct forward_traversal_tag : single_pass_sequence_tag {}; - struct bidirectional_sequence_tag - : forward_sequence_tag {}; + struct bidirectional_traversal_tag + : forward_traversal_tag {}; - struct random_access_sequence_tag - : bidirectional_sequence_tag {}; + struct random_access_traversal_tag + : bidirectional_traversal_tag {}; }} And optionally from: @@ -248,8 +248,8 @@ __sequence__ or __iterator__. using boost::is_base_of; typedef traits::category_of<__list__<> >::type list_category; typedef traits::category_of<__vector__<> >::type vector_category; - BOOST_MPL_ASSERT(( is_base_of )); - BOOST_MPL_ASSERT(( is_base_of )); + BOOST_MPL_ASSERT(( is_base_of )); + BOOST_MPL_ASSERT(( is_base_of )); [endsect] diff --git a/include/boost/fusion/sequence/adapted/array/detail/distance_impl.hpp b/include/boost/fusion/sequence/adapted/array/detail/distance_impl.hpp index b504c920..062dc7d9 100644 --- a/include/boost/fusion/sequence/adapted/array/detail/distance_impl.hpp +++ b/include/boost/fusion/sequence/adapted/array/detail/distance_impl.hpp @@ -28,7 +28,6 @@ namespace boost { namespace fusion { static typename mpl::minus< typename Last::index, typename First::index>::type - call(First const&, Last const&) { typedef typename mpl::minus< diff --git a/include/boost/fusion/sequence/adapted/mpl/detail/category_of_impl.hpp b/include/boost/fusion/sequence/adapted/mpl/detail/category_of_impl.hpp index 1cba8043..c196a71d 100644 --- a/include/boost/fusion/sequence/adapted/mpl/detail/category_of_impl.hpp +++ b/include/boost/fusion/sequence/adapted/mpl/detail/category_of_impl.hpp @@ -9,7 +9,6 @@ #if !defined(BOOST_FUSION_CATEGORY_OF_IMPL_20060217_2141) #define BOOST_FUSION_CATEGORY_OF_IMPL_20060217_2141 -#include #include #include #include @@ -28,11 +27,9 @@ namespace boost { namespace fusion { BOOST_STATIC_ASSERT(mpl::is_sequence::value); typedef typename - iterator_to_sequence_category< - typename mpl_iterator_category< - typename mpl::begin::type::category - >::type - >::type + mpl_iterator_category< + typename mpl::begin::type::category + >::type type; }; } diff --git a/include/boost/fusion/sequence/container/list/cons.hpp b/include/boost/fusion/sequence/container/list/cons.hpp index c3de861d..3b5e7131 100644 --- a/include/boost/fusion/sequence/container/list/cons.hpp +++ b/include/boost/fusion/sequence/container/list/cons.hpp @@ -30,7 +30,7 @@ namespace boost { namespace fusion { struct void_; struct cons_tag; - struct forward_sequence_tag; + struct forward_traversal_tag; struct fusion_sequence_tag; struct nil : sequence_base @@ -39,7 +39,7 @@ namespace boost { namespace fusion typedef cons_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef mpl::false_ is_view; - typedef forward_sequence_tag category; + typedef forward_traversal_tag category; typedef void_ car_type; typedef void_ cdr_type; @@ -62,7 +62,7 @@ namespace boost { namespace fusion typedef cons_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef mpl::false_ is_view; - typedef forward_sequence_tag category; + typedef forward_traversal_tag category; typedef Car car_type; typedef Cdr cdr_type; diff --git a/include/boost/fusion/sequence/container/map/detail/is_associative_impl.hpp b/include/boost/fusion/sequence/container/map/detail/is_associative_impl.hpp deleted file mode 100644 index 656d0114..00000000 --- a/include/boost/fusion/sequence/container/map/detail/is_associative_impl.hpp +++ /dev/null @@ -1,33 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2006 Joel de Guzman - Copyright (c) 2006 Dan Marsden - - Use, modification and distribution is subject to the Boost Software - License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at - http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(BOOST_FUSION_IS_ASSOCIATIVE_IMPL_20060304_2310) -#define BOOST_FUSION_IS_ASSOCIATIVE_IMPL_20060304_2310 - -#include - -namespace boost { namespace fusion { - - struct map_tag; - - namespace extension { - template - struct is_associative_impl; - - template<> - struct is_associative_impl - { - template - struct apply - : mpl::true_ - {}; - }; - } -}} - -#endif diff --git a/include/boost/fusion/sequence/container/map/map.hpp b/include/boost/fusion/sequence/container/map/map.hpp index ddd9807b..82bcfe8e 100644 --- a/include/boost/fusion/sequence/container/map/map.hpp +++ b/include/boost/fusion/sequence/container/map/map.hpp @@ -9,7 +9,7 @@ #define FUSION_MAP_07212005_1106 #include -#include +#include #include #include #include @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include @@ -26,15 +25,15 @@ namespace boost { namespace fusion { struct void_; struct map_tag; - struct forward_sequence_tag; struct fusion_sequence_tag; template struct map : sequence_base > { + struct category : forward_traversal_tag, associative_sequence_tag {}; + typedef map_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL - typedef forward_sequence_tag category; typedef mpl::false_ is_view; typedef vector< diff --git a/include/boost/fusion/sequence/container/set/detail/is_associative_impl.hpp b/include/boost/fusion/sequence/container/set/detail/is_associative_impl.hpp deleted file mode 100644 index d167ee63..00000000 --- a/include/boost/fusion/sequence/container/set/detail/is_associative_impl.hpp +++ /dev/null @@ -1,33 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2006 Joel de Guzman - Copyright (c) 2006 Dan Marsden - - Use, modification and distribution is subject to the Boost Software - License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at - http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#if !defined(BOOST_FUSION_IS_ASSOCIATIVE_IMPL_20060304_2219) -#define BOOST_FUSION_IS_ASSOCIATIVE_IMPL_20060304_2219 - -#include - -namespace boost { namespace fusion { - - struct set_tag; - - namespace extension { - template - struct is_associative_impl; - - template<> - struct is_associative_impl - { - template - struct apply - : mpl::true_ - {}; - }; - } -}} - -#endif diff --git a/include/boost/fusion/sequence/container/set/set.hpp b/include/boost/fusion/sequence/container/set/set.hpp index 81db3a7f..68b2f7c9 100644 --- a/include/boost/fusion/sequence/container/set/set.hpp +++ b/include/boost/fusion/sequence/container/set/set.hpp @@ -9,6 +9,7 @@ #define FUSION_SET_09162005_1104 #include +#include #include #include #include @@ -16,7 +17,6 @@ #include #include #include -#include #include #include #include @@ -25,15 +25,15 @@ namespace boost { namespace fusion { struct void_; struct set_tag; - struct forward_sequence_tag; struct fusion_sequence_tag; template struct set : sequence_base > { + struct category : forward_traversal_tag, associative_sequence_tag {}; + typedef set_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL - typedef forward_sequence_tag category; typedef mpl::false_ is_view; typedef vector< diff --git a/include/boost/fusion/sequence/container/vector/detail/vector_n.hpp b/include/boost/fusion/sequence/container/vector/detail/vector_n.hpp index 9c967e4d..923165d0 100644 --- a/include/boost/fusion/sequence/container/vector/detail/vector_n.hpp +++ b/include/boost/fusion/sequence/container/vector/detail/vector_n.hpp @@ -84,7 +84,7 @@ typedef vector_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef mpl::false_ is_view; - typedef random_access_sequence_tag category; + typedef random_access_traversal_tag category; typedef mpl::int_ size; BOOST_PP_CAT(vector, N)() {} diff --git a/include/boost/fusion/sequence/container/vector/vector10.hpp b/include/boost/fusion/sequence/container/vector/vector10.hpp index 4f092128..da09e811 100644 --- a/include/boost/fusion/sequence/container/vector/vector10.hpp +++ b/include/boost/fusion/sequence/container/vector/vector10.hpp @@ -38,7 +38,7 @@ namespace boost { namespace fusion { struct vector_tag; struct fusion_sequence_tag; - struct random_access_sequence_tag; + struct random_access_traversal_tag; struct vector0 : sequence_base { @@ -46,7 +46,7 @@ namespace boost { namespace fusion typedef vector_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef mpl::false_ is_view; - typedef random_access_sequence_tag category; + typedef random_access_traversal_tag category; typedef mpl::int_<0> size; }; diff --git a/include/boost/fusion/sequence/container/vector/vector20.hpp b/include/boost/fusion/sequence/container/vector/vector20.hpp index 1a4f94d2..a1c3477c 100644 --- a/include/boost/fusion/sequence/container/vector/vector20.hpp +++ b/include/boost/fusion/sequence/container/vector/vector20.hpp @@ -38,7 +38,7 @@ namespace boost { namespace fusion { struct vector_tag; struct fusion_sequence_tag; - struct random_access_sequence_tag; + struct random_access_traversal_tag; // expand vector11 to vector20 #define BOOST_PP_FILENAME_1 diff --git a/include/boost/fusion/sequence/container/vector/vector30.hpp b/include/boost/fusion/sequence/container/vector/vector30.hpp index 8b5325ba..4a40c82d 100644 --- a/include/boost/fusion/sequence/container/vector/vector30.hpp +++ b/include/boost/fusion/sequence/container/vector/vector30.hpp @@ -38,7 +38,7 @@ namespace boost { namespace fusion { struct vector_tag; struct fusion_sequence_tag; - struct random_access_sequence_tag; + struct random_access_traversal_tag; // expand vector21 to vector30 #define BOOST_PP_FILENAME_1 diff --git a/include/boost/fusion/sequence/container/vector/vector40.hpp b/include/boost/fusion/sequence/container/vector/vector40.hpp index 90aa1614..9a1f8afc 100644 --- a/include/boost/fusion/sequence/container/vector/vector40.hpp +++ b/include/boost/fusion/sequence/container/vector/vector40.hpp @@ -38,7 +38,7 @@ namespace boost { namespace fusion { struct vector_tag; struct fusion_sequence_tag; - struct random_access_sequence_tag; + struct random_access_traversal_tag; // expand vector31 to vector40 #define BOOST_PP_FILENAME_1 diff --git a/include/boost/fusion/sequence/container/vector/vector50.hpp b/include/boost/fusion/sequence/container/vector/vector50.hpp index 12fca5bf..437a9ed2 100644 --- a/include/boost/fusion/sequence/container/vector/vector50.hpp +++ b/include/boost/fusion/sequence/container/vector/vector50.hpp @@ -38,7 +38,7 @@ namespace boost { namespace fusion { struct vector_tag; struct fusion_sequence_tag; - struct random_access_sequence_tag; + struct random_access_traversal_tag; // expand vector41 to vector50 #define BOOST_PP_FILENAME_1 diff --git a/include/boost/fusion/sequence/intrinsic/at.hpp b/include/boost/fusion/sequence/intrinsic/at.hpp index 1eb11198..ec3a1fdc 100644 --- a/include/boost/fusion/sequence/intrinsic/at.hpp +++ b/include/boost/fusion/sequence/intrinsic/at.hpp @@ -15,6 +15,8 @@ namespace boost { namespace fusion { + // Special tags: + struct sequence_facade_tag; struct array_tag; // boost::array tag struct mpl_sequence_tag; // mpl sequence tag struct std_pair_tag; // std::pair tag @@ -28,6 +30,13 @@ namespace boost { namespace fusion struct apply; }; + template <> + struct at_impl + { + template + struct apply : Sequence::template at {}; + }; + template <> struct at_impl; diff --git a/include/boost/fusion/sequence/intrinsic/at_key.hpp b/include/boost/fusion/sequence/intrinsic/at_key.hpp index 9229f5c0..fc29c615 100644 --- a/include/boost/fusion/sequence/intrinsic/at_key.hpp +++ b/include/boost/fusion/sequence/intrinsic/at_key.hpp @@ -15,6 +15,8 @@ namespace boost { namespace fusion { + // Special tags: + struct sequence_facade_tag; struct array_tag; // boost::array tag struct mpl_sequence_tag; // mpl sequence tag struct std_pair_tag; // std::pair tag @@ -28,6 +30,13 @@ namespace boost { namespace fusion struct apply; }; + template <> + struct at_key_impl + { + template + struct apply : Sequence::template at_key {}; + }; + template <> struct at_key_impl; diff --git a/include/boost/fusion/sequence/intrinsic/begin.hpp b/include/boost/fusion/sequence/intrinsic/begin.hpp index b2a616d1..c6b053fa 100644 --- a/include/boost/fusion/sequence/intrinsic/begin.hpp +++ b/include/boost/fusion/sequence/intrinsic/begin.hpp @@ -12,7 +12,8 @@ namespace boost { namespace fusion { - struct fusion_sequence_tag; + // Special tags: + struct sequence_facade_tag; // iterator facade tag struct array_tag; // boost::array tag struct mpl_sequence_tag; // mpl sequence tag struct std_pair_tag; // std::pair tag @@ -26,6 +27,13 @@ namespace boost { namespace fusion struct apply; }; + template <> + struct begin_impl + { + template + struct apply : Sequence::template begin {}; + }; + template <> struct begin_impl; diff --git a/include/boost/fusion/sequence/intrinsic/empty.hpp b/include/boost/fusion/sequence/intrinsic/empty.hpp index d8e17c8c..9013cf01 100644 --- a/include/boost/fusion/sequence/intrinsic/empty.hpp +++ b/include/boost/fusion/sequence/intrinsic/empty.hpp @@ -14,7 +14,8 @@ namespace boost { namespace fusion { - struct fusion_sequence_tag; + // Special tags: + struct sequence_facade_tag; struct mpl_sequence_tag; // mpl sequence tag namespace extension @@ -28,6 +29,13 @@ namespace boost { namespace fusion {}; }; + template <> + struct empty_impl + { + template + struct apply : Sequence::template empty {}; + }; + template <> struct empty_impl; } diff --git a/include/boost/fusion/sequence/intrinsic/end.hpp b/include/boost/fusion/sequence/intrinsic/end.hpp index fcce8e04..47ea2479 100644 --- a/include/boost/fusion/sequence/intrinsic/end.hpp +++ b/include/boost/fusion/sequence/intrinsic/end.hpp @@ -12,7 +12,8 @@ namespace boost { namespace fusion { - struct fusion_sequence_tag; + // Special tags: + struct sequence_facade_tag; struct array_tag; // boost::array tag struct mpl_sequence_tag; // mpl sequence tag struct std_pair_tag; // std::pair tag @@ -26,6 +27,13 @@ namespace boost { namespace fusion struct apply; }; + template <> + struct end_impl + { + template + struct apply : Sequence::template end {}; + }; + template <> struct end_impl; diff --git a/include/boost/fusion/sequence/intrinsic/has_key.hpp b/include/boost/fusion/sequence/intrinsic/has_key.hpp index b0962afa..dc0335e9 100644 --- a/include/boost/fusion/sequence/intrinsic/has_key.hpp +++ b/include/boost/fusion/sequence/intrinsic/has_key.hpp @@ -15,7 +15,9 @@ namespace boost { namespace fusion { struct void_; - struct fusion_sequence_tag; + + // Special tags: + struct sequence_facade_tag; struct array_tag; // boost::array tag struct mpl_sequence_tag; // mpl sequence tag struct std_pair_tag; // std::pair tag @@ -32,6 +34,13 @@ namespace boost { namespace fusion {}; }; + template <> + struct has_key_impl + { + template + struct apply : Sequence::template has_key {}; + }; + template <> struct has_key_impl; diff --git a/include/boost/fusion/sequence/intrinsic/size.hpp b/include/boost/fusion/sequence/intrinsic/size.hpp index a79f824a..9b3f9a7b 100644 --- a/include/boost/fusion/sequence/intrinsic/size.hpp +++ b/include/boost/fusion/sequence/intrinsic/size.hpp @@ -13,7 +13,11 @@ namespace boost { namespace fusion { - struct fusion_sequence_tag; + // Special tags: + struct sequence_facade_tag; + struct array_tag; // boost::array tag + struct mpl_sequence_tag; // mpl sequence tag + struct std_pair_tag; // std::pair tag namespace extension { @@ -24,6 +28,13 @@ namespace boost { namespace fusion struct apply : Sequence::size {}; }; + template <> + struct size_impl + { + template + struct apply : Sequence::template size {}; + }; + template <> struct size_impl; diff --git a/include/boost/fusion/sequence/intrinsic/value_at.hpp b/include/boost/fusion/sequence/intrinsic/value_at.hpp index cd589429..f8fcd0b2 100644 --- a/include/boost/fusion/sequence/intrinsic/value_at.hpp +++ b/include/boost/fusion/sequence/intrinsic/value_at.hpp @@ -13,6 +13,8 @@ namespace boost { namespace fusion { + // Special tags: + struct sequence_facade_tag; struct array_tag; // boost::array tag struct mpl_sequence_tag; // mpl sequence tag struct std_pair_tag; // std::pair tag @@ -26,6 +28,13 @@ namespace boost { namespace fusion struct apply; }; + template <> + struct value_at_impl + { + template + struct apply : Sequence::template value_at {}; + }; + template <> struct value_at_impl; diff --git a/include/boost/fusion/sequence/intrinsic/value_at_key.hpp b/include/boost/fusion/sequence/intrinsic/value_at_key.hpp index 51fc88c2..84c1cdeb 100644 --- a/include/boost/fusion/sequence/intrinsic/value_at_key.hpp +++ b/include/boost/fusion/sequence/intrinsic/value_at_key.hpp @@ -14,6 +14,8 @@ namespace boost { namespace fusion { + // Special tags: + struct sequence_facade_tag; struct array_tag; // boost::array tag struct mpl_sequence_tag; // mpl sequence tag struct std_pair_tag; // std::pair tag @@ -23,10 +25,17 @@ namespace boost { namespace fusion template struct value_at_key_impl { - template + template struct apply; }; + template <> + struct value_at_key_impl + { + template + struct apply : Sequence::template value_at_key {}; + }; + template <> struct value_at_key_impl; diff --git a/include/boost/fusion/sequence/sequence_facade.hpp b/include/boost/fusion/sequence/sequence_facade.hpp new file mode 100644 index 00000000..69e3daf5 --- /dev/null +++ b/include/boost/fusion/sequence/sequence_facade.hpp @@ -0,0 +1,28 @@ +/*============================================================================= + Copyright (c) 2001-2006 Joel de Guzman + + Use, modification and distribution is subject to the Boost Software + License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_SEQUENCE_FACADE_09252006_1044) +#define FUSION_SEQUENCE_FACADE_09252006_1044 + +#include +#include + +namespace boost { namespace fusion +{ + struct sequence_facade_tag; + + template + struct sequence_facade : sequence_base + { + typedef sequence_facade_tag fusion_tag; + typedef Derived derived_type; + typedef Category category; + typedef IsView is_view; + }; +}} + +#endif diff --git a/include/boost/fusion/sequence/view/filter_view/filter_view.hpp b/include/boost/fusion/sequence/view/filter_view/filter_view.hpp index 4629e541..69e0b80f 100644 --- a/include/boost/fusion/sequence/view/filter_view/filter_view.hpp +++ b/include/boost/fusion/sequence/view/filter_view/filter_view.hpp @@ -22,7 +22,7 @@ namespace boost { namespace fusion { struct filter_view_tag; - struct forward_sequence_tag; + struct forward_traversal_tag; struct fusion_sequence_tag; template @@ -30,7 +30,7 @@ namespace boost { namespace fusion { typedef filter_view_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL - typedef forward_sequence_tag category; + typedef forward_traversal_tag category; typedef mpl::true_ is_view; typedef typename result_of::begin::type first_type; diff --git a/include/boost/fusion/sequence/view/iterator_range/iterator_range.hpp b/include/boost/fusion/sequence/view/iterator_range/iterator_range.hpp index 05856be2..87635f79 100644 --- a/include/boost/fusion/sequence/view/iterator_range/iterator_range.hpp +++ b/include/boost/fusion/sequence/view/iterator_range/iterator_range.hpp @@ -9,7 +9,6 @@ #define FUSION_ITERATOR_RANGE_05062005_1224 #include -#include #include #include #include @@ -33,11 +32,7 @@ namespace boost { namespace fusion typedef typename result_of::distance::type size; typedef mpl::true_ is_view; - typedef typename - detail::iterator_to_sequence_category< - typename traits::category_of::type - >::type - category; + typedef typename traits::category_of::type category; iterator_range(First const& first, Last const& last) : first(convert_iterator::call(first)) diff --git a/include/boost/fusion/sequence/view/joint_view/joint_view.hpp b/include/boost/fusion/sequence/view/joint_view/joint_view.hpp index 1c5cb54b..40abc41c 100644 --- a/include/boost/fusion/sequence/view/joint_view/joint_view.hpp +++ b/include/boost/fusion/sequence/view/joint_view/joint_view.hpp @@ -24,7 +24,7 @@ namespace boost { namespace fusion { struct joint_view_tag; - struct forward_sequence_tag; + struct forward_traversal_tag; struct fusion_sequence_tag; template @@ -32,7 +32,7 @@ namespace boost { namespace fusion { typedef joint_view_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL - typedef forward_sequence_tag category; + typedef forward_traversal_tag category; typedef mpl::true_ is_view; typedef typename result_of::begin::type first_type; diff --git a/include/boost/fusion/sequence/view/reverse_view/reverse_view.hpp b/include/boost/fusion/sequence/view/reverse_view/reverse_view.hpp index 08ba4c61..e8fb92a8 100644 --- a/include/boost/fusion/sequence/view/reverse_view/reverse_view.hpp +++ b/include/boost/fusion/sequence/view/reverse_view/reverse_view.hpp @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include @@ -40,7 +40,7 @@ namespace boost { namespace fusion typedef typename result_of::size::type size; BOOST_STATIC_ASSERT(( - is_base_and_derived< + is_base_of< bidirectional_traversal_tag , typename traits::category_of::type>::value)); diff --git a/include/boost/fusion/sequence/view/reverse_view/reverse_view_iterator.hpp b/include/boost/fusion/sequence/view/reverse_view/reverse_view_iterator.hpp index 7ba2fedf..6f09d1cb 100644 --- a/include/boost/fusion/sequence/view/reverse_view/reverse_view_iterator.hpp +++ b/include/boost/fusion/sequence/view/reverse_view/reverse_view_iterator.hpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include namespace boost { namespace fusion @@ -34,7 +34,7 @@ namespace boost { namespace fusion typedef typename traits::category_of::type category; BOOST_STATIC_ASSERT(( - is_base_and_derived< + is_base_of< bidirectional_traversal_tag , category>::value)); diff --git a/include/boost/fusion/sequence/view/single_view/single_view.hpp b/include/boost/fusion/sequence/view/single_view/single_view.hpp index c0a32876..4584905d 100644 --- a/include/boost/fusion/sequence/view/single_view/single_view.hpp +++ b/include/boost/fusion/sequence/view/single_view/single_view.hpp @@ -20,7 +20,7 @@ namespace boost { namespace fusion { struct single_view_tag; - struct forward_sequence_tag; + struct forward_traversal_tag; struct fusion_sequence_tag; template @@ -28,7 +28,7 @@ namespace boost { namespace fusion { typedef single_view_tag fusion_tag; typedef fusion_sequence_tag tag; // this gets picked up by MPL - typedef forward_sequence_tag category; + typedef forward_traversal_tag category; typedef mpl::true_ is_view; typedef mpl::int_<1> size; typedef T value_type; diff --git a/test/sequence/map.cpp b/test/sequence/map.cpp index 93ce92a7..bef6880c 100644 --- a/test/sequence/map.cpp +++ b/test/sequence/map.cpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/test/sequence/set.cpp b/test/sequence/set.cpp index 3a10a77f..08c86833 100644 --- a/test/sequence/set.cpp +++ b/test/sequence/set.cpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include