19 template <
class TProcess,
typename TReturn,
typename TArg1,
typename TArg2>
28 static std::false_type
test(...);
32 static decltype(testSignature(&T::template doContinuous<TArg1, TArg2>))
test(
37 static decltype(testSignature(&T::doContinuous))
test(std::nullptr_t);
44 using type = decltype(test<std::decay_t<TProcess>>(
nullptr));
45 static const bool value = type::value;
51 template <
class TProcess,
typename TReturn,
typename TArg1,
typename TArg2>
52 bool constexpr has_method_doContinuous_v =
59 template <
class TProcess,
typename TReturn,
typename... TArgs>
68 static std::false_type
test(...);
72 static decltype(testSignature(&T::template getMaxStepLength<TArgs...>))
test(
77 static decltype(testSignature(&T::getMaxStepLength))
test(std::nullptr_t);
84 using type = decltype(test<std::decay_t<TProcess>>(
nullptr));
85 static const bool value = type::value;
90 template <
class TProcess,
typename TReturn,
typename... TArgs>
static decltype(testSignature(&T::getMaxStepLength)) test(std::nullptr_t)
non templated option
bool constexpr has_method_getMaxStepLength_v
value traits type
static decltype(testSignature(&T::doContinuous)) test(std::nullptr_t)
non templated parameter option
static decltype(testSignature(&T::template getMaxStepLength< TArgs... >)) test(std::nullptr_t)
templated option
`, since they are used everywhere as integral part of the framework.
Helper traits class (partial) for static compile time checking.
static decltype(testSignature(&T::template doContinuous< TArg1, TArg2 >)) test(std::nullptr_t)
templated parameter option
traits test for ContinuousProcess::doContinuous method
traits test for ContinuousProcess::getMaxStepLength method