28 template <
typename X,
typename = decltype(X())>
static yes test(X*);
30 template <
typename X>
static no test(...);
32 static constexpr nbool is =
sizeof(
decltype(
test<T>(
nullptr))) ==
sizeof(
yes);
44 static inline constexpr nbool is =
sizeof(_foo((T*) 0)) ==
sizeof(
yes);
52 template <
typename T,
typename super>
54 static inline constexpr nbool is = std::is_base_of<super, T>::value;
57 template <
typename T,
typename super>
struct tifSub<T&, super> {
58 static inline constexpr nbool is = std::is_base_of<super, T>::value;
61 template <
typename T,
typename super>
struct tifSub<T, super&> {
62 static inline constexpr nbool is = std::is_base_of<super, T>::value;
65 template <
typename T,
typename super>
struct tifSub<T&, super&> {
66 static inline constexpr nbool is = std::is_base_of<super, T>::value;
84 static inline constexpr nbool is =
false;
88 static inline constexpr nbool is =
true;
101 typedef typename T::super super;
110 static void* make() {
return nullptr; }
114 static void* make() {
return (
void*)
new T(); }
133 static const nchar* getRawName() {
return typeid(T).name(); }
135 static std::string getName() {
144 template <
typename T>
using void_t = void;
152 static inline constexpr nbool is =
false;
156 static inline constexpr nbool is =
true;
169 using is =
typename T::metaType;
172 template <
typename T,
typename...
Es>
using areBaseOfT = std::conjunction<std::is_base_of<T, Es>...>;
Root base class for the type hierarchy
Definition adam.hpp:34
Core class for runtime type information in byeol language
Definition type.hpp:100
Rich logging support with polymorphic type conversion
Definition richLog.hpp:34
Helper struct for SFINAE detection patterns
Definition rtti.hpp:74
Adaptive super type selector
Definition rtti.hpp:96
Type trait to check if type has default constructor
Definition rtti.hpp:27
Type trait to check if type has super typedef
Definition rtti.hpp:83
Type trait to check if T is subclass of super
Definition rtti.hpp:53
Type trait to check if type is a template specialization
Definition rtti.hpp:40
Instance factory for type creation
Definition rtti.hpp:109
Template name getter for type introspection
Definition rtti.hpp:132