20 template <
class TProcess,
typename TReturn,
typename TTemplate,
typename... TArgs>
28 static std::false_type
test(...);
32 static decltype(testSignature(&T::template doInteraction<TTemplate>))
test(
37 static decltype(testSignature(&T::doInteraction))
test(std::nullptr_t);
44 using type = decltype(test<std::decay_t<TProcess>>(
nullptr));
45 static const bool value = type::value;
50 template <
class TProcess,
typename TReturn,
typename TTemplate,
typename... TArgs>
58 template <
class TProcess,
typename TReturn,
typename TTemplate,
typename... TArgs>
67 static std::false_type
test(...);
71 static decltype(testSignature(&T::template getCrossSection<TTemplate>))
test(
76 static decltype(testSignature(&T::getCrossSection))
test(std::nullptr_t);
83 using type = decltype(test<std::decay_t<TProcess>>(
nullptr));
84 static const bool value = type::value;
89 template <
class TProcess,
typename TReturn,
typename TTemplate,
typename... TArgs>
97 template <
class TProcess,
typename TReturn,
typename... TArgs>
106 static std::false_type
test(...);
110 static decltype(testSignature(&T::template getCrossSection<TArgs...>))
test(
115 static decltype(testSignature(&T::getCrossSection))
test(std::nullptr_t);
122 using type = decltype(test<std::decay_t<TProcess>>(
nullptr));
123 static const bool value = type::value;
128 template <
class TProcess,
typename TReturn,
typename... TArgs>
static decltype(testSignature(&T::template getCrossSection< TArgs... >)) test(std::nullptr_t)
templated parameter option
bool constexpr has_method_getCrossSectionTemplate_v
value traits type shortcut
bool constexpr has_method_doInteract_v
value traits type
static decltype(testSignature(&T::template getCrossSection< TTemplate >)) test(std::nullptr_t)
templated parameter option
traits test for InteractionProcess::doInteraction method.
static decltype(testSignature(&T::doInteraction)) test(std::nullptr_t)
signature of non-templated method
static decltype(testSignature(&T::getCrossSection)) test(std::nullptr_t)
non templated parameter option
static decltype(testSignature(&T::template doInteraction< TTemplate >)) test(std::nullptr_t)
signature of templated method
`, since they are used everywhere as integral part of the framework.
traits test for TEMPLATED InteractionProcess::getCrossSection method (PROPOSAL).
Helper traits class (partial) for static compile time checking.
static decltype(testSignature(&T::getCrossSection)) test(std::nullptr_t)
non templated parameter option
traits test for InteractionProcess::getCrossSection method.
bool constexpr has_method_getCrossSection_v
value traits type shortcut