Loading...
Searching...
No Matches
rtti.hpp File Reference
#include <iostream>
#include "meta/common.hpp"
#include "meta/type/adam.hpp"

Go to the source code of this file.

Classes

struct  by::metaIf
 Base interface for SFINAE-based type checking. More...
 
struct  by::tifHasDefaultCtor< T >
 Type trait to check if type has default constructor. More...
 
struct  by::tifTemplate< T >
 Type trait to check if type is a template specialization. More...
 
struct  by::tifSub< T, super >
 Type trait to check if T is subclass of super. More...
 
struct  by::tifSub< T &, super >
 
struct  by::tifSub< T, super & >
 
struct  by::tifSub< T &, super & >
 
struct  by::taEmptyCan< T >
 Helper struct for SFINAE detection patterns. More...
 
struct  by::tifHasSuperTypedef< T, typename >
 Type trait to check if type has super typedef. More...
 
struct  by::tifHasSuperTypedef< T, typename taEmptyCan< typename T::super >::is >
 
struct  by::tadaptiveSuper< T, typedefsuper >
 Adaptive super type selector. More...
 
struct  by::tadaptiveSuper< T, true >
 
struct  by::tinstanceMaker< T, canMake >
 Instance factory for type creation. More...
 
struct  by::tinstanceMaker< T, true >
 
struct  by::tnameGetter< T >
 Template name getter for type introspection. More...
 
struct  by::tifHasMetaTypeDef< T, typename >
 Type trait to check if type has metaType definition. More...
 
struct  by::tifHasMetaTypeDef< T, typename taEmptyCan< typename T::metaType >::is >
 
struct  by::tmetaTypeDef< T, hasMeta >
 Meta type definition selector. More...
 
struct  by::tmetaTypeDef< T, true >
 

Typedefs

template<typename T >
using by::void_t = void
 
template<typename T , typename... Es>
using by::areBaseOfT = std::conjunction<std::is_base_of<T, Es>...>