#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_RANGE_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_ITERATOR_RANGE_HPP_INCLUDED
+#include <boost/fusion/support/config.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/remove_reference.hpp>
}
template <typename Sequence, typename T>
+ BOOST_FUSION_GPU_ENABLED
typename
lazy_enable_if<
traits::is_sequence<Sequence>
push_back(Sequence const& seq, T const& x);
template <typename Sequence, typename T>
+ BOOST_FUSION_GPU_ENABLED
typename
lazy_enable_if<
traits::is_sequence<Sequence>
// switch (size(stack_begin))
// {
// case 1:
- // return nil;
+ // return nil_;
// case 2:
// // car(cdr(stack_begin)) is a range over values.
// assert(end(front(car(stack_begin))) == end(car(cdr(stack_begin))));
>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Stack const& stack)
{
//return segment_sequence(
>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Stack const& stack)
{
// return iterator_range(begin(car(cdr(stack_begin))), end(front(car(stack_begin))));
template <typename Stack>
struct make_segment_sequence_front<Stack, 1>
{
- typedef typename Stack::cdr_type type; // nil
+ typedef typename Stack::cdr_type type; // nil_
+ BOOST_FUSION_GPU_ENABLED
static type call(Stack const &stack)
{
return stack.cdr;
// switch (size(stack_end))
// {
// case 1:
- // return nil;
+ // return nil_;
// case 2:
// // car(cdr(stack_back)) is a range over values.
// assert(end(front(car(stack_end))) == end(car(cdr(stack_end))));
>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Stack const& stack)
{
// return segment_sequence(
>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Stack const& stack)
{
// return iterator_range(begin(front(car(stack_end))), begin(car(cdr(stack_end))));
template <typename Stack>
struct make_segment_sequence_back<Stack, 1>
{
- typedef typename Stack::cdr_type type; // nil
+ typedef typename Stack::cdr_type type; // nil_
+ BOOST_FUSION_GPU_ENABLED
static type call(Stack const& stack)
{
return stack.cdr;
>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(StackBegin stack_begin, StackEnd stack_end)
{
//return segment_sequence(
typename impl::type
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(StackBegin stack_begin, StackEnd stack_end)
{
return impl::call(stack_begin.cdr, stack_end.cdr);
segment_sequence<segment_type>
type;
+ BOOST_FUSION_GPU_ENABLED
static type call(StackBegin stack_begin, StackEnd stack_end)
{
//return segment_sequence(
typedef typename impl::type type;
+ BOOST_FUSION_GPU_ENABLED
static type call(Begin const& begin, End const& end)
{
return impl::call(