Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
23 #ifndef ATHENAKERNEL_BASES_H
24 #define ATHENAKERNEL_BASES_H
27 #include <type_traits>
93 template <
class CALLABLE>
98 using return_t = decltype (
f (
static_cast<void*
> (
nullptr),
false));
99 return return_t (
false);
124 template <
class BASE,
class... REST>
185 template <
class CALLABLE>
194 auto ret1 =
f (
static_cast<base_t*
> (
nullptr), base_is_virtual);
195 if (
static_cast<bool> (ret1)) {
201 if (
static_cast<bool> (ret2)) {
206 if constexpr (
sizeof... (REST) > 0) {
208 if (
static_cast<bool> (ret3)) {
214 using return_t = decltype (ret1);
215 return return_t (
false);
223 #endif // not ATHENAKERNEL_BASES_H
std::true_type is_virtual
typename SG::BaseType< T >::type BaseType_t
Traits class to hold derivation information.
Marker to indicate a nonexistent base class.
Wrapper to indicate virtual derivation.
std::false_type is_virtual
static auto foreach_(CALLABLE f, bool=false)
Iterate over base classes.
static auto foreach_(CALLABLE f, bool is_virtual=false)
Iterate over base classes.
Helper metafunction to get base class types.
Represent a list of base classes.