1 | /*============================================================================= |
---|---|
2 | Copyright (c) 2011 Eric Niebler |
3 | |
4 | Distributed under the Boost Software License, Version 1.0. (See accompanying |
5 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
6 | ==============================================================================*/ |
7 | #if !defined(BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED) |
8 | #define BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED |
9 | |
10 | #include <boost/fusion/support/config.hpp> |
11 | #include <boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp> |
12 | #include <boost/fusion/iterator/segmented_iterator.hpp> |
13 | #include <boost/fusion/view/iterator_range.hpp> |
14 | #include <boost/fusion/sequence/intrinsic/begin.hpp> |
15 | #include <boost/fusion/sequence/intrinsic/end.hpp> |
16 | #include <boost/fusion/sequence/intrinsic/empty.hpp> |
17 | #include <boost/fusion/container/list/cons.hpp> |
18 | |
19 | namespace boost { namespace fusion { namespace detail |
20 | { |
21 | //auto segmented_begin( seq ) |
22 | //{ |
23 | // return make_segmented_iterator( segmented_begin_impl( seq, nil_ ) ); |
24 | //} |
25 | |
26 | template <typename Sequence, typename Nil_ = fusion::nil_> |
27 | struct segmented_begin |
28 | { |
29 | typedef |
30 | segmented_iterator< |
31 | typename segmented_begin_impl<Sequence, Nil_>::type |
32 | > |
33 | type; |
34 | |
35 | BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED |
36 | static type call(Sequence& seq) |
37 | { |
38 | return type( |
39 | segmented_begin_impl<Sequence, Nil_>::call(seq, Nil_())); |
40 | } |
41 | }; |
42 | |
43 | }}} |
44 | |
45 | #endif |
46 |