iz.types

Several templates, alias, traits or functions related to types.

Members

Aliases

BasicTypes
alias BasicTypes = AliasSeq!(bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double, real, char, wchar, dchar)

BasicTypes elements verify isBasicType().

GenericDelegate
alias GenericDelegate = void delegate()

Common type for all the delagate kinds, when seen as a struct (ptr & funcptr).

GenericFunction
alias GenericFunction = void function()

Common type for all the function kinds.

Ptr
alias Ptr = void*

pointer.

Functions

className
string className(T t)

Returns the dynamic class name of an Object or an interface.

defaultConstructor
auto defaultConstructor()

Returns a pointer to the default constructor of a class

isFixedSize
bool isFixedSize()

Returns true if T is a fixed-length data.

Mixin templates

ScopedReachability
mixin template ScopedReachability()

Indicates if the member of a struct or class is accessible for compile time introspection.

Templates

ArrayElementType
template ArrayElementType(T)

Indicates the array element type of an array.

NestedTemplateAndArgsOf
template NestedTemplateAndArgsOf(alias T, TemplateAndArgsOf...)
template NestedTemplateAndArgsOf(T)

Decomposes the chain of the templates and arguments used to create the alias passed as argument.

dimensionCount
template dimensionCount(T)

Indicates the dimension count of an built-in array.

hasDefaultConstructor
template hasDefaultConstructor(C)

Indicates wether a class has a default constructor.

hasElaborateSelfEquals
template hasElaborateSelfEquals(T)

Indicates wether the type passed as template parameter has a custom opEquals function that allows self comparison.

hasInOperator
template hasInOperator(T, A)

Indicates wether an aggregate can be used with the in operator.

isCompileTimeValue
template isCompileTimeValue(alias V, T...)
template isCompileTimeValue(V, T...)

Indicates wether something is a value known at compile time.

isCppClass
template isCppClass(T)

Indicates wether the class passed as template argument has the extern(C++) linkage attribute.

isEponymousTemplate
template isEponymousTemplate(T)
template isEponymousTemplate(alias T)

Indicates wether a type or a variable type is an eponymous template.

isMultiDimensionalArray
template isMultiDimensionalArray(T)

Detects whether type T is a multi dimensional array.

isOrderedEnum
template isOrderedEnum(T)

Indicates wether an enum is ordered.

isSpecializedType
template isSpecializedType(T)
template isSpecializedType(alias T)

Indicates wether something is a specialized type.

isStringLiteral
template isStringLiteral(V)

Indicates wether something is a value known at compile time.

isTemplateInstance
template isTemplateInstance(alias T : Base!Args, alias Base, Args...)
template isTemplateInstance(T : Base!Args, alias Base, Args...)
template isTemplateInstance(T)
template isTemplateInstance(alias T)

Detects wether T is an instantiated template.

Meta