|
| template<alpaka::concepts::DeviceSpec T_Any, typename... Args> |
| constexpr decltype(auto) | operator() (T_Any &&any, Args &&... args) const |
| | Fallback operator() to generic function if not dispatchable for the given device specification.
|
| template<alpaka::concepts::DeviceSpec T_Any, typename... Args> |
| constexpr decltype(auto) | operator() (T_Any &&any, Args &&... args) const |
| | Fallback operator() to alpaka implementation if the function is not dispatchable for the given device specification.
|
| template<alpaka::concepts::DeviceSpec T_Any, typename... Args> |
| constexpr decltype(auto) | operator() (T_Any &&any, Args &&... args) const |
| | Call function overload if defined for the given device specification.
|
template<typename T_FnClass,
Fallback T_fallbackPolicy = Fallback::toGeneric,
Registration T_registrationPolicy = Registration::none>
struct alpaka::fn::Fn< T_FnClass, T_fallbackPolicy, T_registrationPolicy >
Base class for function symbols.
- Template Parameters
-
| T_FnClass | The function symbol to register, dispatch and call. The class should be trivially constructable. By using the static call() function or the operator() |
| T_fallbackPolicy | The fallback policy if no vendor function overload is defined for the given device specification. If set to Fallback::toAlpaka the alpaka implementation is called if no other overload fits. If set to Fallback::none no fallback is performed and a static assert is triggered if no function overload is defined for the given device specification. |
| T_registrationPolicy | If set to Registration::enforced the isRegistered() can be called, and it is required to define alpakaFnRegister() for on T_FnClass. If set to Registration::none the isRegistered() function is not available and no registration of the vendor function overloads is required. If set to Registration::alwaysTrue isRegistered() will always return true. This can be used to skip the registration of the function symbol. |
Definition at line 154 of file fn.hpp.