gpu-enable functions

This commit is contained in:
Eric Niebler
2014-01-09 17:58:06 -08:00
committed by Eric Niebler
parent 867c7e5dfb
commit c4f9f0d1b6
840 changed files with 7409 additions and 116 deletions

View File

@ -47,9 +47,11 @@ namespace boost { namespace fusion
}
template <typename Function, class Sequence>
BOOST_FUSION_GPU_ENABLED
inline void invoke_procedure(Function, Sequence &);
template <typename Function, class Sequence>
BOOST_FUSION_GPU_ENABLED
inline void invoke_procedure(Function, Sequence const &);
//----- ---- --- -- - - - -
@ -75,6 +77,7 @@ namespace boost { namespace fusion
}
template <typename Function, class Sequence>
BOOST_FUSION_GPU_ENABLED
inline void invoke_procedure(Function f, Sequence & s)
{
detail::invoke_procedure_impl<
@ -83,6 +86,7 @@ namespace boost { namespace fusion
}
template <typename Function, class Sequence>
BOOST_FUSION_GPU_ENABLED
inline void invoke_procedure(Function f, Sequence const & s)
{
detail::invoke_procedure_impl<
@ -109,6 +113,7 @@ namespace boost { namespace fusion
#if N > 0
BOOST_FUSION_GPU_ENABLED
static inline void call(Function & f, Sequence & s)
{
f(BOOST_PP_ENUM(N,M,~));
@ -116,6 +121,7 @@ namespace boost { namespace fusion
#else
BOOST_FUSION_GPU_ENABLED
static inline void call(Function & f, Sequence & /*s*/)
{
f();
@ -129,6 +135,7 @@ namespace boost { namespace fusion
template <typename Function, class Sequence>
struct invoke_procedure_impl<Function,Sequence,N,true,true>
{
BOOST_FUSION_GPU_ENABLED
static inline void call(Function & f, Sequence & s)
{
(that_ptr<typename mpl::front<
@ -151,6 +158,7 @@ namespace boost { namespace fusion
#if N > 0
BOOST_FUSION_GPU_ENABLED
static inline void call(Function & f, Sequence & s)
{
typedef typename result_of::begin<Sequence>::type I0;
@ -160,6 +168,7 @@ namespace boost { namespace fusion
}
#else
BOOST_FUSION_GPU_ENABLED
static inline void call(Function & f, Sequence & /*s*/)
{
f();
@ -173,6 +182,7 @@ namespace boost { namespace fusion
template <typename Function, class Sequence>
struct invoke_procedure_impl<Function,Sequence,N,true,false>
{
BOOST_FUSION_GPU_ENABLED
static inline void call(Function & f, Sequence & s)
{
typedef typename result_of::begin<Sequence>::type I0;