19 template<
typename T_Func>
29 template<
typename T_Func>
37 template<
typename T_Func>
47 template<
typename T_Func>
56 template<
typename T_Acc,
typename T_Functor,
typename... T_Args>
57 requires std::invocable<T_Functor, T_Acc, T_Args...>
58 inline constexpr auto callFunctor(T_Acc
const& acc, T_Functor&& functor, T_Args&&... args)
60 return functor(acc, std::forward<T_Args>(args)...);
63 template<
typename T_Acc,
typename T_Functor,
typename... T_Args>
64 requires std::invocable<T_Functor, T_Args...>
65 inline constexpr auto callFunctor(T_Acc
const&, T_Functor&& functor, T_Args&&... args)
67 return functor(std::forward<T_Args>(args)...);
#define ALPAKA_FN_HOST_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
#define ALPAKA_FORWARD(instance)
Perfectly forward an instance as argument.
ALPAKA_FN_HOST_ACC StencilFunc(T_Func &&) -> StencilFunc< T_Func >
ALPAKA_FN_HOST_ACC ScalarFunc(T_Func &&) -> ScalarFunc< T_Func >
constexpr auto callFunctor(T_Acc const &acc, T_Functor &&functor, T_Args &&... args)
Execute the functor with or without an accelerator as first argument.
Marks a functor that can only be executed with scalar types and not SIMD packages.
constexpr ScalarFunc(auto &&func)
Marks a functor which supports SimdPtr as arguments.
constexpr StencilFunc(auto &&func)