20 template <
class TProcess,
typename TReturn,
typename... TArgs>
31 static std::false_type
test(...);
35 static decltype(testSignature(&T::template doDecay<TArgs...>))
test(std::nullptr_t);
39 static decltype(testSignature(&T::doDecay))
test(std::nullptr_t);
46 using type = decltype(test<process_type>(
nullptr));
47 static const bool value = type::value;
53 template <
class TProcess,
typename TReturn,
typename... TArgs>
54 bool constexpr has_method_doDecay_v =
61 template <
class TProcess,
typename TReturn,
typename... TArgs>
69 static std::false_type
test(...);
73 static decltype(testSignature(&T::template getLifetime<TArgs...>))
test(
78 static decltype(testSignature(&T::getLifetime))
test(std::nullptr_t);
85 using type = decltype(test<std::decay_t<TProcess>>(
nullptr));
86 static const bool value = type::value;
91 template <
class TProcess,
typename TReturn,
typename... TArgs>
static decltype(testSignature(&T::template getLifetime< TArgs... >)) test(std::nullptr_t)
signature of templated method
static decltype(testSignature(&T::getLifetime)) test(std::nullptr_t)
signature of non-templated method
std::decay_t< TProcess > process_type
type of process to be studied
traits test for DecayProcess::getLifetime method
traits test for DecayProcess::doDecay method
`, since they are used everywhere as integral part of the framework.
Helper traits class (partial) for static compile time checking.
bool constexpr has_method_getLifetime_v
value traits type
static decltype(testSignature(&T::template doDecay< TArgs... >)) test(std::nullptr_t)
signature of templated method
static decltype(testSignature(&T::doDecay)) test(std::nullptr_t)
signature of non-templated method