Specialiser
for coping with scalar parameters that are provided as pointers: something APIs love to do.
More...
#include <PtrScalar.hpp>
Static Public Member Functions | |
template<typename T > | |
static constexpr bool | test () |
template<typename VType , PtrLocation PtrLoc, typename... Stuff> | |
static auto | run (const PtrScalar< VType, PtrLoc > &thisArg, Stuff &&... stuff) |
Static Public Member Functions inherited from sp::Specialiser | |
template<typename T > | |
static constexpr bool | test () |
Return true iff the specialiser is able to specialise arguments of type T. More... | |
template<typename... O, typename ArgType , typename... Stuff> | |
static auto | run (const ArgType &thisArg, Stuff &&... stuff) |
Specialise an argument. More... | |
Specialiser
for coping with scalar parameters that are provided as pointers: something APIs love to do.
If you don't want to support all combinations of location (which may lead to a lot of uninteresting specialisations), you can expicitly specify an sp::PtrLocation
tparam in the type of the scalar you pass here or to VariantScalarSpecialiser
. Alternatively, you can set the tparam of this Specialiser
to have it assume that all input scalars have a particular location.
Specialiser
s for a specialising call.ForceLoc | If set to something other than UNKNOWN, all PtrScalar s are assumed to have that location. This suppresses the generation of mixed-location specialisations. |