|
Evo C++ Library v0.5.1
|
Evo Metaprogramming. More...
#include "impl/sys.h"Go to the source code of this file.
Classes | |
| struct | AddConst< T > |
| Add const to type. More... | |
| struct | TypeId::ByteCopy |
| Used to identify ByteCopy types. More... | |
| struct | EvoContainer< T > |
| Trait to identify Evo container types. More... | |
| struct | TypeId::Get< T > |
| Use to get type ID info for type T. More... | |
| struct | TypeId::GetFill< T > |
| Use to get type ID info for type T as for filling arrays/buffers. More... | |
| struct | IsArray< T > |
| Check if type is an array. More... | |
| struct | IsBool< T > |
| Check if type is a boolean (true/false) type. More... | |
| struct | IsByteCopyType< T > |
| Check if type is a ByteCopy type. More... | |
| struct | IsConst< T > |
| Check if type is const. More... | |
| class | IsConvertible< T, U > |
| Check if type T is convertible to type U. More... | |
| class | IsEvoContainer< T > |
| Check if type is an EvoContainer. More... | |
| struct | IsFloat< T > |
| Check if type is a floating point type. More... | |
| struct | IsInt< T > |
| Check if type is an integer (whole number) type. More... | |
| struct | IsNormalType< T > |
| Check if type is a normal type (not POD and not ByteCopy type). More... | |
| class | IsNullable< T > |
| Check if type is nullable. More... | |
| struct | IsPodType< T > |
| Check if type is a Plan Old Data type. More... | |
| struct | IsPointer< T > |
| Check if type is a pointer. More... | |
| struct | IsReference< T > |
| Check if type is a reference. More... | |
| struct | IsSame< T1, T2 > |
| Check if types are exactly the same. More... | |
| struct | IsSigned< T > |
| Check if integer type is unsigned. More... | |
| struct | TypeId::Normal |
| Used to identify normal types (not POD, and not ByteCopy). More... | |
| struct | TypeId::Pod |
| Used to identify POD (Plain Old Data) types. More... | |
| struct | RemoveConst< T > |
| Remove const from type. More... | |
| struct | RemoveConstVol< T > |
| Remove const & volatile from type. More... | |
| struct | RemoveExtents< T > |
| Remove extents (pointer and array parts) from type. More... | |
| struct | RemoveExtentsConstVol< T > |
| Remove extents (pointer and array parts) and then const & volatile from type. More... | |
| struct | RemoveVolatile< T > |
| Remove volatile from type. More... | |
| struct | StaticBool< val > |
| Static bool value. More... | |
| struct | StaticIf< b, T, F > |
| Static conditional type. More... | |
| struct | ToSigned< T > |
| Translate integer type to signed. More... | |
| struct | ToUnsigned< T > |
| Translate integer type to unsigned. More... | |
| struct | TypeId |
| Type ID info (POD, ByteCopy, Normal). More... | |
Namespaces | |
| evo | |
| Evo C++ Library namespace. | |
Macros | |
| #define | EVO_BCTYPE(Type) namespace evo { template<> struct ByteCopyType<Type> : public StaticBoolT { }; } |
| Identify the given type as a Byte-Copy type. More... | |
| #define | EVO_CONTAINER(Type) EVO_TRAIT_NSET(evo,EvoContainer,Type) |
| Identify given type as an EvoContainer. More... | |
| #define | EVO_CONTAINER_TYPE typedef void EvoContainerType |
| Identify current class/struct as an EvoContainer. More... | |
| #define | EVO_CREATE_HAS_METHOD(TypeName, ReturnType, Func, ...) |
| Create template to check if type has a member function matching given signature. More... | |
| #define | EVO_CREATE_HAS_METHOD_CONST(TypeName, ReturnType, Func, ...) |
| Create template to check if type has a const member function matching given signature. More... | |
| #define | EVO_CREATE_HAS_VAR(TypeName, VarType, VarName) |
| Create template to check if type has a member variable matching given signature. More... | |
| #define | EVO_PODTYPE(Type) namespace evo { template<> struct PodType<Type> : public StaticBoolT { }; } |
| Identify given type as a Plain Old Data Type. More... | |
| #define | EVO_STATIC_JOIN(A, B) IMPL_EVO_STATIC_JOIN1(A,B) |
| Join (concatenate) compile-time symbols after resolving macros. More... | |
| #define | EVO_TRAIT_CREATE(Name) template<class T> struct Name : StaticBoolF { }; |
| Helper for creating a boolean trait type. More... | |
| #define | EVO_TRAIT_NSET(Namespace, Name, Type) namespace Namespace { template<> struct Name< Type > : public StaticBoolT { }; } |
| Helper for setting a boolean trait for given type. More... | |
| #define | EVO_TRAIT_SET(Name, Type) template<> struct Name< Type > : public StaticBoolT { }; |
| Helper for setting a boolean trait for given type. More... | |
| #define | EVO_TYPE_SELECT(T, Pod, Bc, Normal) typename StaticIf<IsPodType<T>::value,Pod,typename StaticIf<IsByteCopyType<T>::value,Bc,Normal>::Type>::Type |
| Select a type depending on whether Type is POD, ByteCopy, or Normal type. More... | |
| #define | INCL_evo_meta_h |
| #define | STATIC_ASSERT(EXP, TOKEN) static_assert(EXP,#TOKEN) |
| Assert compile-time expression is true or trigger compiler error. More... | |
| #define | STATIC_ASSERT_FUNC_UNUSED =delete; |
| Assert a function is unused at compile-time. More... | |
| #define | STATIC_ASSERT_FUNC_UNUSED_RET(RET) =delete; |
| Assert a function is unused at compile-time (with return value). More... | |
Typedefs | |
| typedef StaticBool< false > | StaticBoolF |
| Static bool value (false). More... | |
| typedef StaticBool< true > | StaticBoolT |
| Static bool value (true). More... | |
Functions | |
| template<class T > | |
| bool | is_null (const T &val) |
| Check whether object or value is null. More... | |
Evo Metaprogramming.
| #define INCL_evo_meta_h |
1.8.13