18template<
typename A,
typename B,
typename C>
30template<
typename A,
typename B,
typename C>
42template<
typename A,
typename B,
typename C>
54template<
typename A,
typename B,
typename C>
69template<
typename Built,
typename From,
typename =
void>
74template<
typename Built,
typename From>
80 std::is_convertible_v<From, Built> ||
81 std::is_constructible_v<Built, From>
86template<
typename ObjType>
92template<CSubscriptable Ts>
97template<
typename EnumType>
98concept CEnum = std::is_enum_v<EnumType>;
100template<
typename EnumType>
103 { EnumType::SIZE } -> std::convertible_to<EnumType>;
112template<
typename TypeA,
typename TypeB>
113concept CSame = std::same_as<TypeA, TypeB>;
115template<
typename TypeA,
typename TypeB>
121template<
typename DerivedType,
typename BaseType>
122concept CDerived = std::derived_from<DerivedType, BaseType>;
127template<
typename BaseType,
typename DerivedType>
128concept CBase = std::derived_from<DerivedType, BaseType>;
Checks whether BaseType is a base of DerivedType. The result is also true if both types are the same;...
Definition traits.h:128
Check if instances of types can be added together.
Definition traits.h:19
Check if instances of types can be divided.
Definition traits.h:55
Check if instances of types can be multiplied together.
Definition traits.h:43
Check if instances of types can be subtracted.
Definition traits.h:31
Checks whether DerivedType is derived from BaseType. The result is also true if both types are the sa...
Definition traits.h:122
Whether the type is a scoped/unscoped enum.
Definition traits.h:98
Checks whether T supports arithmetic operations. Effectively checking std::is_arithmetic<>.
Definition traits.h:110
The root for all renderer implementations.
Definition EEngineProject.h:6
decltype(std::declval< Ts >()[0]) TSubscriptedTypeOf
Definition traits.h:93
Check if object conversion can be made.
Definition traits.h:70