gpu-enable functions

This commit is contained in:
Eric Niebler authored and Eric Niebler committed 2014-01-22 23:55:53 -08:00
1 parent 867c7e5dfb
commit c4f9f0d1b6
840 files changed
+7409 -116

No files matched your search

@@ -7,6 +7,7 @@
#if !defined(FUSION_SEQUENCE_COMPARISON_10022005_0615)
#define FUSION_SEQUENCE_COMPARISON_10022005_0615
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
#include <boost/fusion/sequence/comparison/greater.hpp>
#include <boost/fusion/sequence/comparison/greater_equal.hpp>
@@ -8,6 +8,7 @@
#if !defined(FUSION_EQUAL_TO_05052005_1142)
#define FUSION_EQUAL_TO_05052005_1142
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,6 +24,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const&, I2 const&, mpl::true_)
{
@@ -30,6 +32,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b, mpl::false_)
{
@@ -38,6 +41,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b)
{
@@ -50,6 +54,7 @@ namespace boost { namespace fusion { namespace detail
struct sequence_equal_to<Seq1, Seq2, false>
{
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& /*a*/, I2 const& /*b*/)
{
@@ -8,6 +8,7 @@
#if !defined(FUSION_GREATER_05052005_1142)
#define FUSION_GREATER_05052005_1142
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,6 +24,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const&, I2 const&, mpl::true_)
{
@@ -30,6 +32,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b, mpl::false_)
{
@@ -39,6 +42,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b)
{
@@ -8,6 +8,7 @@
#if !defined(FUSION_GREATER_EQUAL_05052005_1142)
#define FUSION_GREATER_EQUAL_05052005_1142
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,6 +24,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const&, I2 const&, mpl::true_)
{
@@ -30,6 +32,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b, mpl::false_)
{
@@ -39,6 +42,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b)
{
@@ -8,6 +8,7 @@
#if !defined(FUSION_LESS_05052005_1141)
#define FUSION_LESS_05052005_1141
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,6 +24,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const&, I2 const&, mpl::true_)
{
@@ -30,6 +32,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b, mpl::false_)
{
@@ -39,6 +42,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b)
{
@@ -8,6 +8,7 @@
#if !defined(FUSION_LESS_EQUAL_05052005_1141)
#define FUSION_LESS_EQUAL_05052005_1141
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,6 +24,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const&, I2 const&, mpl::true_)
{
@@ -30,6 +32,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b, mpl::false_)
{
@@ -39,6 +42,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b)
{
@@ -8,6 +8,7 @@
#if !defined(FUSION_NOT_EQUAL_TO_05052005_1141)
#define FUSION_NOT_EQUAL_TO_05052005_1141
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,6 +24,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename result_of::end<Seq2>::type end2_type;
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const&, I2 const&, mpl::true_)
{
@@ -30,6 +32,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b, mpl::false_)
{
@@ -38,6 +41,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b)
{
@@ -50,6 +54,7 @@ namespace boost { namespace fusion { namespace detail
struct sequence_not_equal_to<Seq1, Seq2, false>
{
template <typename I1, typename I2>
BOOST_FUSION_GPU_ENABLED
static bool
call(I1 const& a, I2 const& b)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_ENABLE_COMPARISON_09232005_1958)
#define FUSION_ENABLE_COMPARISON_09232005_1958
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/or.hpp>
#include <boost/mpl/and.hpp>
#include <boost/mpl/not.hpp>
@@ -8,6 +8,7 @@
#if !defined(FUSION_EQUAL_TO_05052005_0431)
#define FUSION_EQUAL_TO_05052005_0431
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -23,6 +24,7 @@
namespace boost { namespace fusion
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline bool
equal_to(Seq1 const& a, Seq2 const& b)
{
@@ -36,6 +38,7 @@ namespace boost { namespace fusion
namespace operators
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
traits::enable_equality<Seq1, Seq2>
@@ -8,6 +8,7 @@
#if !defined(FUSION_GREATER_05052005_0432)
#define FUSION_GREATER_05052005_0432
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -22,6 +23,7 @@
namespace boost { namespace fusion
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline bool
greater(Seq1 const& a, Seq2 const& b)
{
@@ -36,6 +38,7 @@ namespace boost { namespace fusion
namespace operators
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
traits::enable_comparison<Seq1, Seq2>
@@ -8,6 +8,7 @@
#if !defined(FUSION_GREATER_EQUAL_05052005_0432)
#define FUSION_GREATER_EQUAL_05052005_0432
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -22,6 +23,7 @@
namespace boost { namespace fusion
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline bool
greater_equal(Seq1 const& a, Seq2 const& b)
{
@@ -36,6 +38,7 @@ namespace boost { namespace fusion
namespace operators
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
traits::enable_comparison<Seq1, Seq2>
@@ -8,6 +8,7 @@
#if !defined(FUSION_LESS_05052005_0432)
#define FUSION_LESS_05052005_0432
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -17,6 +18,7 @@
namespace boost { namespace fusion
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline bool
less(Seq1 const& a, Seq2 const& b)
{
@@ -27,6 +29,7 @@ namespace boost { namespace fusion
namespace operators
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
traits::enable_comparison<Seq1, Seq2>
@@ -8,6 +8,7 @@
#if !defined(FUSION_LESS_EQUAL_05052005_0432)
#define FUSION_LESS_EQUAL_05052005_0432
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -23,6 +24,7 @@
namespace boost { namespace fusion
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline bool
less_equal(Seq1 const& a, Seq2 const& b)
{
@@ -39,6 +41,7 @@ namespace boost { namespace fusion
#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1400)
// Workaround for VC8.0 and VC7.1
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline bool
operator<=(sequence_base<Seq1> const& a, sequence_base<Seq2> const& b)
{
@@ -46,6 +49,7 @@ namespace boost { namespace fusion
}
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename disable_if<traits::is_native_fusion_sequence<Seq2>, bool>::type
operator<=(sequence_base<Seq1> const& a, Seq2 const& b)
{
@@ -53,6 +57,7 @@ namespace boost { namespace fusion
}
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename disable_if<traits::is_native_fusion_sequence<Seq1>, bool>::type
operator<=(Seq1 const& a, sequence_base<Seq2> const& b)
{
@@ -64,6 +69,7 @@ namespace boost { namespace fusion
// but barfs somewhere else.
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
traits::enable_comparison<Seq1, Seq2>
@@ -8,6 +8,7 @@
#if !defined(FUSION_NOT_EQUAL_TO_05052005_0431)
#define FUSION_NOT_EQUAL_TO_05052005_0431
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -22,6 +23,7 @@
namespace boost { namespace fusion
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline bool
not_equal_to(Seq1 const& a, Seq2 const& b)
{
@@ -39,6 +41,7 @@ namespace boost { namespace fusion
namespace operators
{
template <typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
traits::enable_equality<Seq1, Seq2>
@@ -29,6 +29,7 @@ namespace boost { namespace fusion
}
template <typename Tag, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::convert<Tag, Sequence>::type
convert(Sequence& seq)
{
@@ -37,6 +38,7 @@ namespace boost { namespace fusion
}
template <typename Tag, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::convert<Tag, Sequence const>::type
convert(Sequence const& seq)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_SEQUENCE_INTRINSIC_10022005_0618)
#define FUSION_SEQUENCE_INTRINSIC_10022005_0618
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#include <boost/fusion/sequence/intrinsic/back.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
@@ -7,6 +7,7 @@
#if !defined(FUSION_AT_05042005_0722)
#define FUSION_AT_05042005_0722
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
@@ -71,6 +72,7 @@ namespace boost { namespace fusion
template <typename N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -82,6 +84,7 @@ namespace boost { namespace fusion
}
template <typename N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::at<Sequence const, N>::type
at(Sequence const& seq)
{
@@ -89,6 +92,7 @@ namespace boost { namespace fusion
}
template <int N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -100,6 +104,7 @@ namespace boost { namespace fusion
}
template <int N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::at_c<Sequence const, N>::type
at_c(Sequence const& seq)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_AT_C_08252008_0308)
#define FUSION_AT_C_08252008_0308
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#endif
@@ -8,6 +8,7 @@
#if !defined(BOOST_FUSION_AT_KEY_20060304_1755)
#define BOOST_FUSION_AT_KEY_20060304_1755
#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/algorithm/query/find.hpp>
@@ -37,6 +38,7 @@ namespace boost { namespace fusion
>::type
type;
BOOST_FUSION_GPU_ENABLED
static type
call(Seq& seq)
{
@@ -72,6 +74,7 @@ namespace boost { namespace fusion
}
template <typename Key, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -83,6 +86,7 @@ namespace boost { namespace fusion
}
template <typename Key, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::at_key<Sequence const, Key>::type
at_key(Sequence const& seq)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_BACK_09162005_0350)
#define FUSION_BACK_09162005_0350
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/iterator/prior.hpp>
@@ -26,6 +27,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::back<Sequence>::type
back(Sequence& seq)
{
@@ -33,6 +35,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::back<Sequence const>::type
back(Sequence const& seq)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_BEGIN_04052005_1132)
#define FUSION_BEGIN_04052005_1132
#include <boost/fusion/support/config.hpp>
#include <boost/blank.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/if.hpp>
@@ -70,6 +71,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -81,6 +83,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp>
#include <boost/fusion/iterator/segmented_iterator.hpp>
#include <boost/fusion/view/iterator_range.hpp>
@@ -31,6 +32,7 @@ namespace boost { namespace fusion { namespace detail
>
type;
BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq)
{
return type(
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED
#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/fusion/container/list/cons_fwd.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
@@ -37,6 +38,7 @@ namespace boost { namespace fusion { namespace detail
typedef cons<range_type, Context> type;
typedef mpl::false_ continue_type;
BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, State const&, Context const& context, segmented_begin_fun)
{
return type(range_type(fusion::begin(seq), fusion::end(seq)), context);
@@ -62,6 +64,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename fold_impl::type type;
BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, Stack const& stack)
{
return fold_impl::call(seq, end_impl::call(seq, stack), stack, segmented_begin_fun());
@@ -76,6 +79,7 @@ namespace boost { namespace fusion { namespace detail
typedef iterator_range<begin_type, end_type> pair_type;
typedef cons<pair_type, Stack> type;
BOOST_FUSION_GPU_ENABLED
static type call(Sequence& seq, Stack stack)
{
return type(pair_type(fusion::begin(seq), fusion::end(seq)), stack);
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp>
#include <boost/fusion/iterator/segmented_iterator.hpp>
#include <boost/fusion/container/list/cons.hpp>
@@ -27,6 +28,7 @@ namespace boost { namespace fusion { namespace detail
>
type;
BOOST_FUSION_GPU_ENABLED
static type call(Sequence & seq)
{
return type(
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_END_IMPL_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_END_IMPL_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>
@@ -47,6 +48,7 @@ namespace boost { namespace fusion { namespace detail
typedef iterator_range<end_type, end_type> pair_type;
typedef cons<pair_type, Stack> type;
BOOST_FUSION_GPU_ENABLED
static type call(Sequence & seq, Stack stack)
{
end_type end = fusion::end(fusion::segments(seq));
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTED_SIZE_08112006_1141)
#define BOOST_FUSION_SEGMENTED_SIZE_08112006_1141
#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/mpl/fold.hpp>
@@ -7,6 +7,7 @@
#if !defined(FUSION_EMPTY_09162005_0335)
#define FUSION_EMPTY_09162005_0335
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/mpl/bool.hpp>
@@ -50,6 +51,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::empty<Sequence>::type
empty(Sequence const&)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_END_04052005_1141)
#define FUSION_END_04052005_1141
#include <boost/fusion/support/config.hpp>
#include <boost/blank.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/if.hpp>
@@ -70,6 +71,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -81,6 +83,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -7,6 +7,7 @@
#if !defined(FUSION_FRONT_09162005_0343)
#define FUSION_FRONT_09162005_0343
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/iterator/deref.hpp>
@@ -25,6 +26,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::front<Sequence>::type
front(Sequence& seq)
{
@@ -32,6 +34,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::front<Sequence const>::type
front(Sequence const& seq)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_HAS_KEY_09232005_1454)
#define FUSION_HAS_KEY_09232005_1454
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/iterator/equal_to.hpp>
@@ -67,6 +68,7 @@ namespace boost { namespace fusion
}
template <typename Key, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::has_key<Sequence, Key>::type
has_key(Sequence const&)
{
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEGMENTS_04052005_1141)
#define BOOST_FUSION_SEGMENTS_04052005_1141
#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
@@ -53,6 +54,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
lazy_disable_if<
is_const<Sequence>
@@ -65,6 +67,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::segments<Sequence const>::type
segments(Sequence const& seq)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_SIZE_05052005_0214)
#define FUSION_SIZE_05052005_0214
#include <boost/fusion/support/config.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/int.hpp>
@@ -77,6 +78,7 @@ namespace boost { namespace fusion
}
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename result_of::size<Sequence>::type
size(Sequence const&)
{
@@ -8,6 +8,7 @@
#if !defined(BOOST_FUSION_SWAP_20070501_1956)
#define BOOST_FUSION_SWAP_20070501_1956
#include <boost/fusion/support/config.hpp>
#include <algorithm>
#include <boost/fusion/support/is_sequence.hpp>
@@ -39,6 +40,7 @@ namespace boost { namespace fusion {
};
template<typename Elem>
BOOST_FUSION_GPU_ENABLED
void operator()(Elem const& e) const
{
using std::swap;
@@ -48,6 +50,7 @@ namespace boost { namespace fusion {
}
template<typename Seq1, typename Seq2>
BOOST_FUSION_GPU_ENABLED
typename enable_if<mpl::and_<traits::is_sequence<Seq1>, traits::is_sequence<Seq2> >, void>::type
swap(Seq1& lhs, Seq2& rhs)
{
@@ -7,6 +7,7 @@
#if !defined(FUSION_VALUE_AT_05052005_0229)
#define FUSION_VALUE_AT_05052005_0229
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/support/tag_of.hpp>
@@ -8,6 +8,7 @@
#if !defined(FUSION_VALUE_AT_KEY_05052005_0229)
#define FUSION_VALUE_AT_KEY_05052005_0229
#include <boost/fusion/support/config.hpp>
#include <boost/mpl/int.hpp>
#include <boost/fusion/sequence/intrinsic_fwd.hpp>
#include <boost/fusion/iterator/value_of_data.hpp>
@@ -7,6 +7,7 @@
#if !defined(BOOST_FUSION_SEQUENCE_INTRINSIC_FWD_HPP_INCLUDED)
#define BOOST_FUSION_SEQUENCE_INTRINSIC_FWD_HPP_INCLUDED
#include <boost/fusion/support/config.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/fusion/support/is_sequence.hpp>
@@ -92,6 +93,7 @@ namespace boost { namespace fusion
}
template <typename N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_disable_if<
is_const<Sequence>
@@ -100,10 +102,12 @@ namespace boost { namespace fusion
at(Sequence& seq);
template <typename N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::at<Sequence const, N>::type
at(Sequence const& seq);
template <int N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_disable_if<
is_const<Sequence>
@@ -112,18 +116,22 @@ namespace boost { namespace fusion
at_c(Sequence& seq);
template <int N, typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::at_c<Sequence const, N>::type
at_c(Sequence const& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::back<Sequence>::type
back(Sequence& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::back<Sequence const>::type
back(Sequence const& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -132,6 +140,7 @@ namespace boost { namespace fusion
begin(Sequence& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -140,10 +149,12 @@ namespace boost { namespace fusion
begin(Sequence const& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::empty<Sequence>::type
empty(Sequence const&);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -152,6 +163,7 @@ namespace boost { namespace fusion
end(Sequence& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_enable_if<
traits::is_sequence<Sequence>
@@ -160,18 +172,22 @@ namespace boost { namespace fusion
end(Sequence const& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::front<Sequence>::type
front(Sequence& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::front<Sequence const>::type
front(Sequence const& seq);
template <typename Key, typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::has_key<Sequence, Key>::type
has_key(Sequence const& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_disable_if<
is_const<Sequence>
@@ -180,14 +196,17 @@ namespace boost { namespace fusion
segments(Sequence& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::segments<Sequence const>::type
segments(Sequence const& seq);
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::size<Sequence>::type
size(Sequence const&);
template <typename Key, typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename
lazy_disable_if<
is_const<Sequence>
@@ -196,6 +215,7 @@ namespace boost { namespace fusion
at_key(Sequence& seq);
template <typename Key, typename Sequence>
BOOST_FUSION_GPU_ENABLED
typename result_of::at_key<Sequence const, Key>::type
at_key(Sequence const& seq);
}}
+1
View File
@@ -7,6 +7,7 @@
#if !defined(FUSION_SEQUENCE_IO_10032005_0836)
#define FUSION_SEQUENCE_IO_10032005_0836
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/sequence/io/in.hpp>
#include <boost/fusion/sequence/io/out.hpp>
@@ -9,6 +9,7 @@
#if !defined(FUSION_IN_05052005_0121)
#define FUSION_IN_05052005_0121
#include <boost/fusion/support/config.hpp>
#include <istream>
#include <boost/fusion/sequence/io/detail/manip.hpp>
@@ -26,6 +27,7 @@ namespace boost { namespace fusion { namespace detail
{
// read a delimiter
template <typename IS>
BOOST_FUSION_GPU_ENABLED
static void
read(IS& is, char const* delim, mpl::false_ = mpl::false_())
{
@@ -34,6 +36,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename IS>
BOOST_FUSION_GPU_ENABLED
static void
read(IS&, char const*, mpl::true_)
{
@@ -43,12 +46,14 @@ namespace boost { namespace fusion { namespace detail
struct read_sequence_loop
{
template <typename IS, typename First, typename Last>
BOOST_FUSION_GPU_ENABLED
static void
call(IS&, First const&, Last const&, mpl::true_)
{
}
template <typename IS, typename First, typename Last>
BOOST_FUSION_GPU_ENABLED
static void
call(IS& is, First const& first, Last const& last, mpl::false_)
{
@@ -64,6 +69,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename IS, typename First, typename Last>
BOOST_FUSION_GPU_ENABLED
static void
call(IS& is, First const& first, Last const& last)
{
@@ -73,6 +79,7 @@ namespace boost { namespace fusion { namespace detail
};
template <typename IS, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline void
read_sequence(IS& is, Sequence& seq)
{
@@ -9,6 +9,7 @@
#if !defined(FUSION_MANIP_05052005_1200)
#define FUSION_MANIP_05052005_1200
#include <boost/fusion/support/config.hpp>
#include <boost/config.hpp>
#include <string>
#include <vector>
@@ -35,6 +36,7 @@ namespace boost { namespace fusion
namespace detail
{
template <typename Tag>
BOOST_FUSION_GPU_ENABLED
int get_xalloc_index(Tag* = 0)
{
// each Tag will have a unique index
@@ -47,6 +49,7 @@ namespace boost { namespace fusion
{
struct arena
{
BOOST_FUSION_GPU_ENABLED
~arena()
{
for (
@@ -61,6 +64,7 @@ namespace boost { namespace fusion
std::vector<T*> data;
};
BOOST_FUSION_GPU_ENABLED
static void attach(Stream& stream, T const& data)
{
static arena ar; // our arena
@@ -68,6 +72,7 @@ namespace boost { namespace fusion
stream.pword(get_xalloc_index<Tag>()) = ar.data.back();
}
BOOST_FUSION_GPU_ENABLED
static T const* get(Stream& stream)
{
return (T const*)stream.pword(get_xalloc_index<Tag>());
@@ -83,16 +88,19 @@ namespace boost { namespace fusion
typedef stream_data<Stream, Tag, string_type> stream_data_t;
BOOST_FUSION_GPU_ENABLED
string_ios_manip(Stream& str_)
: stream(str_)
{}
BOOST_FUSION_GPU_ENABLED
void
set(string_type const& s)
{
stream_data_t::attach(stream, s);
}
BOOST_FUSION_GPU_ENABLED
void
print(char const* default_) const
{
@@ -104,6 +112,7 @@ namespace boost { namespace fusion
stream << default_;
}
BOOST_FUSION_GPU_ENABLED
void
read(char const* default_) const
{
@@ -128,6 +137,7 @@ namespace boost { namespace fusion
private:
template <typename Char>
BOOST_FUSION_GPU_ENABLED
void
check_delim(Char c) const
{
@@ -155,30 +165,35 @@ namespace boost { namespace fusion
#define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name) \
template <typename Char, typename Traits> \
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<Char, Traits> \
name(const std::basic_string<Char, Traits>& s) \
{ \
return detail::name##_type<Char, Traits>(s); \
} \
\
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<char> \
name(char const* s) \
{ \
return detail::name##_type<char>(std::basic_string<char>(s)); \
} \
\
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<wchar_t> \
name(wchar_t const* s) \
{ \
return detail::name##_type<wchar_t>(std::basic_string<wchar_t>(s)); \
} \
\
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<char> \
name(char c) \
{ \
return detail::name##_type<char>(std::basic_string<char>(1, c)); \
} \
\
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<wchar_t> \
name(wchar_t c) \
{ \
@@ -189,6 +204,7 @@ namespace boost { namespace fusion
#define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name) \
template <typename Char, typename Traits> \
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<Char, Traits> \
name(const std::basic_string<Char, Traits>& s) \
{ \
@@ -196,6 +212,7 @@ namespace boost { namespace fusion
} \
\
template <typename Char> \
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<Char> \
name(Char s[]) \
{ \
@@ -203,6 +220,7 @@ namespace boost { namespace fusion
} \
\
template <typename Char> \
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<Char> \
name(Char const s[]) \
{ \
@@ -210,6 +228,7 @@ namespace boost { namespace fusion
} \
\
template <typename Char> \
BOOST_FUSION_GPU_ENABLED \
inline detail::name##_type<Char> \
name(Char c) \
{ \
@@ -228,10 +247,12 @@ namespace boost { namespace fusion
{ \
typedef std::basic_string<Char, Traits> string_type; \
string_type data; \
BOOST_FUSION_GPU_ENABLED \
name##_type(const string_type& d): data(d) {} \
}; \
\
template <typename Stream, typename Char, typename Traits> \
BOOST_FUSION_GPU_ENABLED \
Stream& operator>>(Stream& s, const name##_type<Char,Traits>& m) \
{ \
string_ios_manip<name##_tag, Stream>(s).set(m.data); \
@@ -239,6 +260,7 @@ namespace boost { namespace fusion
} \
\
template <typename Stream, typename Char, typename Traits> \
BOOST_FUSION_GPU_ENABLED \
Stream& operator<<(Stream& s, const name##_type<Char,Traits>& m) \
{ \
string_ios_manip<name##_tag, Stream>(s).set(m.data); \
@@ -9,6 +9,7 @@
#if !defined(FUSION_OUT_05052005_0121)
#define FUSION_OUT_05052005_0121
#include <boost/fusion/support/config.hpp>
#include <ostream>
#include <boost/fusion/sequence/io/detail/manip.hpp>
@@ -26,6 +27,7 @@ namespace boost { namespace fusion { namespace detail
{
// print a delimiter
template <typename OS>
BOOST_FUSION_GPU_ENABLED
static void
print(OS& os, char const* delim, mpl::false_ = mpl::false_())
{
@@ -34,6 +36,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename OS>
BOOST_FUSION_GPU_ENABLED
static void
print(OS&, char const*, mpl::true_)
{
@@ -43,12 +46,14 @@ namespace boost { namespace fusion { namespace detail
struct print_sequence_loop
{
template <typename OS, typename First, typename Last>
BOOST_FUSION_GPU_ENABLED
static void
call(OS&, First const&, Last const&, mpl::true_)
{
}
template <typename OS, typename First, typename Last>
BOOST_FUSION_GPU_ENABLED
static void
call(OS& os, First const& first, Last const& last, mpl::false_)
{
@@ -64,6 +69,7 @@ namespace boost { namespace fusion { namespace detail
}
template <typename OS, typename First, typename Last>
BOOST_FUSION_GPU_ENABLED
static void
call(OS& os, First const& first, Last const& last)
{
@@ -73,6 +79,7 @@ namespace boost { namespace fusion { namespace detail
};
template <typename OS, typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline void
print_sequence(OS& os, Sequence const& seq)
{
+3
View File
@@ -9,6 +9,7 @@
#if !defined(BOOST_IN_05042005_0120)
#define BOOST_IN_05042005_0120
#include <boost/fusion/support/config.hpp>
#include <istream>
#include <boost/fusion/sequence/io/detail/in.hpp>
#include <boost/fusion/support/is_sequence.hpp>
@@ -16,6 +17,7 @@
namespace boost { namespace fusion
{
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline std::istream&
in(std::istream& is, Sequence& seq)
{
@@ -26,6 +28,7 @@ namespace boost { namespace fusion
namespace operators
{
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
fusion::traits::is_sequence<Sequence>
+3
View File
@@ -9,6 +9,7 @@
#if !defined(BOOST_OUT_05042005_0120)
#define BOOST_OUT_05042005_0120
#include <boost/fusion/support/config.hpp>
#include <ostream>
#include <boost/fusion/sequence/io/detail/out.hpp>
#include <boost/fusion/support/is_sequence.hpp>
@@ -18,6 +19,7 @@
namespace boost { namespace fusion
{
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline std::ostream&
out(std::ostream& os, Sequence& seq)
{
@@ -28,6 +30,7 @@ namespace boost { namespace fusion
namespace operators
{
template <typename Sequence>
BOOST_FUSION_GPU_ENABLED
inline typename
boost::enable_if<
fusion::traits::is_sequence<Sequence>
@@ -7,6 +7,7 @@
#if !defined(FUSION_SEQUENCE_FACADE_09252006_1044)
#define FUSION_SEQUENCE_FACADE_09252006_1044
#include <boost/fusion/support/config.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/mpl/bool.hpp>