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_END_HPP_INCLUDED) 8 #define BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED 9 10 #include <boost/fusion/support/config.hpp> 11 #include <boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp> 12 #include <boost/fusion/iterator/segmented_iterator.hpp> 13 #include <boost/fusion/container/list/cons.hpp> 14 15 namespace boost { namespace fusion { namespace detail 16 { 17 //auto segmented_end( seq ) 18 //{ 19 // return make_segmented_iterator( segmented_end_impl( seq ) ); 20 //} 21 22 template <typename Sequence, typename Nil_ = fusion::nil_> 23 struct segmented_end 24 { 25 typedef 26 segmented_iterator< 27 typename segmented_end_impl<Sequence, Nil_>::type 28 > 29 type; 30 31 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED callboost::fusion::detail::segmented_end32 static type call(Sequence & seq) 33 { 34 return type( 35 segmented_end_impl<Sequence, Nil_>::call(seq, Nil_())); 36 } 37 }; 38 39 }}} 40 41 #endif 42