LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::rtti Namespace Reference

Classes

struct  has_builder_t
 Trait that is evaluated, if a class does not have an builder member type defined. More...
 
struct  has_builder_t< T, std::void_t< typename T::builder > >
 Trait that is evaluated, if a class does have an builder member type defined. More...
 
struct  is_explicitly_constructible_t
 
struct  is_implicitly_constructible_t
 

Concepts

concept  has_builder
 
concept  is_explicitly_constructible
 
concept  is_implicitly_constructible
 
concept  implements
 

Variables

template<class T >
constexpr bool has_builder_v = has_builder_t<T>::value
 Evaluates to either true or false, if T contains an builder member definition. More...
 
template<typename T , typename TArg , typename ... TArgs>
constexpr bool is_explicitly_constructible_v = is_explicitly_constructible_t<T, TArg, TArgs...>::value
 Evalues to true or false, depending if T contains an explicit constructor that takes TArg and TArgs as arguments. More...
 
template<typename T , typename TArg , typename ... TArgs>
constexpr bool is_implicitly_constructible_v = is_explicitly_constructible_t<T, TArg, TArgs...>::value
 Evalues to true or false, depending if T contains an implicit constructor that takes TArg and TArgs as arguments. More...
 

Variable Documentation

◆ has_builder_v

template<class T >
constexpr bool LiteFX::rtti::has_builder_v = has_builder_t<T>::value
constexpr

Evaluates to either true or false, if T contains an builder member definition.

template <typename T, std::enable_if_t<rtti::has_builder_v<T>, int> = 0, typename TBuilder = T::builder>
TBuilder makeBuilder() { return TBuilder(); }
template <typename T, typename TBuilder, std::enable_if_t<!rtti::has_builder_v<T>, int> = 0, typename TBuilder = Builder<T, TBuilder>>
TBuilder makeBuilder() { return TBuilder(); }
Template Parameters
TThe type to check for an builder.

◆ is_explicitly_constructible_v

template<typename T , typename TArg , typename ... TArgs>
constexpr bool LiteFX::rtti::is_explicitly_constructible_v = is_explicitly_constructible_t<T, TArg, TArgs...>::value
constexpr

Evalues to true or false, depending if T contains an explicit constructor that takes TArg and TArgs as arguments.

Template Parameters
T
TArg
...TArgs

◆ is_implicitly_constructible_v

template<typename T , typename TArg , typename ... TArgs>
constexpr bool LiteFX::rtti::is_implicitly_constructible_v = is_explicitly_constructible_t<T, TArg, TArgs...>::value
constexpr

Evalues to true or false, depending if T contains an implicit constructor that takes TArg and TArgs as arguments.

Template Parameters
T
TArg
...TArgs