Typedefs
|
template<typename T >
|
using
|
enable_if_scalar
= typename std::enable_if<
STD_IS_REPLACEMENT
(scalar, T), T >::type
|
template<typename T >
|
using
|
enable_if_not_scalar
= typename std::enable_if<!
STD_IS_REPLACEMENT
(scalar, T), T >::type
|
template<typename T >
|
using
|
enable_if_float
= typename std::enable_if<
STD_IS_REPLACEMENT
(floating_point, T), T >::type
|
template<typename T >
|
using
|
enable_if_not_float
= typename std::enable_if<!
STD_IS_REPLACEMENT
(floating_point, T), T >::type
|
template<typename T >
|
using
|
enable_if_integral
= typename std::enable_if<
STD_IS_REPLACEMENT
(integral, T), T >::type
|
template<typename T >
|
using
|
enable_if_not_integral
= typename std::enable_if<!
STD_IS_REPLACEMENT
(integral, T), T >::type
|
Macro Definition Documentation
◆
MATH_HELPER_INSTANTIATE
#define MATH_HELPER_INSTANTIATE
|
(
|
|
Func
|
)
|
|
If you want to use your scalar function with any of the MathFuncHelper specializations:
MATH_HELPER_INSTANTIATE(YourFunc)
; This will create a Function of the same name as the provided function "YourFunc" and can be used like e.g.
MATH_HELPER_INSTANTIATE
(
SmoothStep
);
template
<
typename
T>
class
MyClass
{
Result<T> SomeFunc(
const
T& value,
const
T& lowerLimit,
const
T& upperLimit)
{
return
SmoothStep
(lowerLimit, upperLimit, value);
// Note that T can be of any type we specialized for.
}
};