diff --git a/include/boost/fusion/algorithm/iteration/ext_/fold_s.hpp b/include/boost/fusion/algorithm/iteration/ext_/fold_s.hpp index 13908f97..f991d03c 100644 --- a/include/boost/fusion/algorithm/iteration/ext_/fold_s.hpp +++ b/include/boost/fusion/algorithm/iteration/ext_/fold_s.hpp @@ -8,7 +8,7 @@ #define BOOST_FUSION_FOLD_S_HPP_INCLUDED #include -#include +#include namespace boost { namespace fusion { namespace detail { diff --git a/include/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp b/include/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp index cf9d72c2..8d9173aa 100644 --- a/include/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp +++ b/include/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp @@ -9,7 +9,7 @@ #include #include -#include +#include namespace boost { namespace fusion { namespace detail { diff --git a/include/boost/fusion/algorithm/query/ext_/find_if_s.hpp b/include/boost/fusion/algorithm/query/ext_/find_if_s.hpp index 70a484cc..863d806a 100644 --- a/include/boost/fusion/algorithm/query/ext_/find_if_s.hpp +++ b/include/boost/fusion/algorithm/query/ext_/find_if_s.hpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include namespace boost { namespace fusion { namespace detail { diff --git a/include/boost/fusion/algorithm/query/ext_/find_s.hpp b/include/boost/fusion/algorithm/query/ext_/find_s.hpp index f95a230a..a1a1f904 100644 --- a/include/boost/fusion/algorithm/query/ext_/find_s.hpp +++ b/include/boost/fusion/algorithm/query/ext_/find_s.hpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include namespace boost { namespace fusion { namespace detail { diff --git a/include/boost/fusion/container/ext_/tree.hpp b/include/boost/fusion/container/ext_/tree.hpp index d1e777d0..8d62a20a 100644 --- a/include/boost/fusion/container/ext_/tree.hpp +++ b/include/boost/fusion/container/ext_/tree.hpp @@ -19,12 +19,12 @@ #include #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include namespace boost { namespace fusion { diff --git a/include/boost/fusion/view/ext_/detail/reverse_cons.hpp b/include/boost/fusion/container/list/detail/reverse_cons.hpp similarity index 100% rename from include/boost/fusion/view/ext_/detail/reverse_cons.hpp rename to include/boost/fusion/container/list/detail/reverse_cons.hpp diff --git a/include/boost/fusion/iterator.hpp b/include/boost/fusion/iterator.hpp index 9aeb6a39..f8d5958a 100644 --- a/include/boost/fusion/iterator.hpp +++ b/include/boost/fusion/iterator.hpp @@ -9,6 +9,7 @@ #include #include +#include #include #include #include diff --git a/include/boost/fusion/iterator/segmented_iterator.hpp b/include/boost/fusion/iterator/segmented_iterator.hpp new file mode 100644 index 00000000..5e446f5c --- /dev/null +++ b/include/boost/fusion/iterator/segmented_iterator.hpp @@ -0,0 +1,12 @@ +/*============================================================================= + Copyright (c) 2011 Eric Niebler + + 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) +==============================================================================*/ +#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED + +#include + +#endif diff --git a/include/boost/fusion/view/ext_/detail/begin_impl.hpp b/include/boost/fusion/iterator/segmented_iterator/detail/begin_impl.hpp similarity index 94% rename from include/boost/fusion/view/ext_/detail/begin_impl.hpp rename to include/boost/fusion/iterator/segmented_iterator/detail/begin_impl.hpp index d5fd90a3..b66f9939 100644 --- a/include/boost/fusion/view/ext_/detail/begin_impl.hpp +++ b/include/boost/fusion/iterator/segmented_iterator/detail/begin_impl.hpp @@ -13,9 +13,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include namespace boost { namespace fusion { namespace detail { diff --git a/include/boost/fusion/view/ext_/detail/end_impl.hpp b/include/boost/fusion/iterator/segmented_iterator/detail/end_impl.hpp similarity index 93% rename from include/boost/fusion/view/ext_/detail/end_impl.hpp rename to include/boost/fusion/iterator/segmented_iterator/detail/end_impl.hpp index 5e7eee56..44a7ef5e 100644 --- a/include/boost/fusion/view/ext_/detail/end_impl.hpp +++ b/include/boost/fusion/iterator/segmented_iterator/detail/end_impl.hpp @@ -13,8 +13,8 @@ #include #include #include -#include -#include +#include +#include namespace boost { namespace fusion { namespace detail { diff --git a/include/boost/fusion/view/ext_/detail/next_impl.hpp b/include/boost/fusion/iterator/segmented_iterator/detail/next_impl.hpp similarity index 99% rename from include/boost/fusion/view/ext_/detail/next_impl.hpp rename to include/boost/fusion/iterator/segmented_iterator/detail/next_impl.hpp index 7428d2ac..b83a858b 100644 --- a/include/boost/fusion/view/ext_/detail/next_impl.hpp +++ b/include/boost/fusion/iterator/segmented_iterator/detail/next_impl.hpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include namespace boost { namespace fusion { diff --git a/include/boost/fusion/view/ext_/detail/segment_sequence.hpp b/include/boost/fusion/iterator/segmented_iterator/detail/segment_sequence.hpp similarity index 95% rename from include/boost/fusion/view/ext_/detail/segment_sequence.hpp rename to include/boost/fusion/iterator/segmented_iterator/detail/segment_sequence.hpp index cae4e5df..2a31ab01 100644 --- a/include/boost/fusion/view/ext_/detail/segment_sequence.hpp +++ b/include/boost/fusion/iterator/segmented_iterator/detail/segment_sequence.hpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include namespace boost { namespace fusion { diff --git a/include/boost/fusion/view/ext_/segmented_iterator.hpp b/include/boost/fusion/iterator/segmented_iterator/segmented_iterator.hpp similarity index 88% rename from include/boost/fusion/view/ext_/segmented_iterator.hpp rename to include/boost/fusion/iterator/segmented_iterator/segmented_iterator.hpp index 238e1679..cd889647 100644 --- a/include/boost/fusion/view/ext_/segmented_iterator.hpp +++ b/include/boost/fusion/iterator/segmented_iterator/segmented_iterator.hpp @@ -4,8 +4,8 @@ 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) ==============================================================================*/ -#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED) -#define BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED +#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_SEGMENTED_ITERATOR_HPP_INCLUDED) +#define BOOST_FUSION_SEGMENTED_ITERATOR_SEGMENTED_ITERATOR_HPP_INCLUDED #include #include @@ -18,9 +18,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include namespace boost { namespace fusion diff --git a/include/boost/fusion/sequence/intrinsic.hpp b/include/boost/fusion/sequence/intrinsic.hpp index 8c5f4abd..0d60d962 100644 --- a/include/boost/fusion/sequence/intrinsic.hpp +++ b/include/boost/fusion/sequence/intrinsic.hpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/include/boost/fusion/view/ext_/segmented_begin.hpp b/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp similarity index 93% rename from include/boost/fusion/view/ext_/segmented_begin.hpp rename to include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp index 7f36ae36..3184474d 100644 --- a/include/boost/fusion/view/ext_/segmented_begin.hpp +++ b/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp @@ -7,7 +7,7 @@ #if !defined(BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED) #define BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED -#include +#include namespace boost { namespace fusion { diff --git a/include/boost/fusion/view/ext_/segmented_end.hpp b/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp similarity index 94% rename from include/boost/fusion/view/ext_/segmented_end.hpp rename to include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp index ac52d149..584b60fe 100644 --- a/include/boost/fusion/view/ext_/segmented_end.hpp +++ b/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp @@ -8,7 +8,7 @@ #define BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED #include -#include +#include namespace boost { namespace fusion { diff --git a/include/boost/fusion/sequence/intrinsic/ext_/segmented_size.hpp b/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp similarity index 94% rename from include/boost/fusion/sequence/intrinsic/ext_/segmented_size.hpp rename to include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp index 721756c4..1ee72720 100644 --- a/include/boost/fusion/sequence/intrinsic/ext_/segmented_size.hpp +++ b/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp @@ -18,8 +18,8 @@ #include #include #include -#include -#include +#include +#include namespace boost { namespace fusion { diff --git a/include/boost/fusion/sequence/intrinsic/ext_/segments.hpp b/include/boost/fusion/sequence/intrinsic/segments.hpp similarity index 82% rename from include/boost/fusion/sequence/intrinsic/ext_/segments.hpp rename to include/boost/fusion/sequence/intrinsic/segments.hpp index 16f2bfa4..77ed0773 100644 --- a/include/boost/fusion/sequence/intrinsic/ext_/segments.hpp +++ b/include/boost/fusion/sequence/intrinsic/segments.hpp @@ -11,6 +11,10 @@ namespace boost { namespace fusion { + // Special tags: + struct sequence_facade_tag; + struct iterator_range_tag; + // segments: returns a sequence of sequences namespace extension { @@ -20,6 +24,16 @@ namespace boost { namespace fusion template struct apply {}; }; + + template <> + struct segments_impl + { + template + struct apply : Sequence::template segments {}; + }; + + template <> + struct segments_impl; } namespace result_of diff --git a/include/boost/fusion/support.hpp b/include/boost/fusion/support.hpp index 012ee107..f1cad29a 100644 --- a/include/boost/fusion/support.hpp +++ b/include/boost/fusion/support.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include diff --git a/include/boost/fusion/support/ext_/is_segmented.hpp b/include/boost/fusion/support/is_segmented.hpp similarity index 79% rename from include/boost/fusion/support/ext_/is_segmented.hpp rename to include/boost/fusion/support/is_segmented.hpp index 63330a4a..ba571dc5 100644 --- a/include/boost/fusion/support/ext_/is_segmented.hpp +++ b/include/boost/fusion/support/is_segmented.hpp @@ -13,24 +13,27 @@ namespace boost { namespace fusion { // Special tags: struct sequence_facade_tag; - struct boost_tuple_tag; // boost::tuples::tuple tag - struct boost_array_tag; // boost::array tag - struct mpl_sequence_tag; // mpl sequence tag - struct std_pair_tag; // std::pair tag struct iterator_range_tag; namespace extension { - template + template struct is_segmented_impl { - template + template struct apply : mpl::false_ {}; }; - template<> + template <> + struct is_segmented_impl + { + template + struct apply : Sequence::is_segmented {}; + }; + + template <> struct is_segmented_impl; } diff --git a/include/boost/fusion/view/ext_/segmented_fold_until.hpp b/include/boost/fusion/support/segmented_fold_until.hpp similarity index 99% rename from include/boost/fusion/view/ext_/segmented_fold_until.hpp rename to include/boost/fusion/support/segmented_fold_until.hpp index 990c0042..b5e0299f 100644 --- a/include/boost/fusion/view/ext_/segmented_fold_until.hpp +++ b/include/boost/fusion/support/segmented_fold_until.hpp @@ -24,8 +24,8 @@ #include #include #include -#include -#include +#include +#include // fun(rng, state, context) // rng: a non-segmented range diff --git a/include/boost/fusion/view/ext_/segmented_iterator_range.hpp b/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp similarity index 98% rename from include/boost/fusion/view/ext_/segmented_iterator_range.hpp rename to include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp index d8ab40ca..80c000c7 100644 --- a/include/boost/fusion/view/ext_/segmented_iterator_range.hpp +++ b/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp @@ -15,15 +15,15 @@ #include #include #include -#include -#include +#include +#include #include #include #include #include -#include -#include -#include +#include +#include +#include // Invariants: // - Each segmented iterator has a stack diff --git a/test/sequence/ext_/iterator_range_s.cpp b/test/sequence/ext_/iterator_range_s.cpp index 4aea3ae5..33c63446 100644 --- a/test/sequence/ext_/iterator_range_s.cpp +++ b/test/sequence/ext_/iterator_range_s.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include