Returns template parameters of T.
Determines the template T is an instance of.
If T is a type, constructs its default value, otherwise $(D_PSYMBOL evalUDA) aliases itself to T.
Attributes can be attached to a function.
Returns all the base classes of T, the direct parent class comes first, $(D_PSYMBOL Object) ist the last one.
Returns a tuple of base classes and interfaces of T.
Returns all members of $(D_KEYWORD enum) T.
Returns the types of all members of T.
Determines the type of the callable F.
Returns all the interfaces T inherits from.
Returns a tuple with default values of the parameters to F.
Returns a string array with all parameter names of a function.
Returns a tuple with parameter types of a function.
Determines the return type of the callable F.
Returns a tuple of all base classes and interfaces of T.
Determines whether all Types are the same.
Different than T.alignof, which is the same for all class types, $(D_PSYMBOL classInstanceOf) determines the alignment of the class instance and not of its reference.
Retrieves the attributes of the function F.
Returns a compile-time tuple of user-defined attributes (UDA) attached to symbol.
Determines whether T has an elaborate assign.
Determines whether T has an elaborate postblit constructor.
Determines whether T has an elaborate destructor.
Determines whether a function has attribute.
Determines whether the type T has a static method named member.
Determines whether symbol has user-defined attribute attr attached to it.
Tests whether pred(T) can be used as condition in an $(D_KEYWORD if)-statement or a ternary operator.
Determines whether T is an array type (dynamic or static, but not an associative one).
Tests whether a value of type Rhs can be assigned to a variable of type Lhs.
Determines whether T is an associative array type.
Delegate stores the function pointer and function context.
Tells whether Args contains only expressions.
$(D_PSYMBOL isFunction) returns $(D_KEYWORD true) only for plain functions, not function pointers or delegates. Use $(D_PSYMBOL isFunctionPointer) or $(D_PSYMBOL isDelegate) to detect them or $(D_PSYMBOL isSomeFunction) for detecting a function of any type.
Function pointer is a pointer to a function. So a simple function is not a function pointer, but getting the address of such function returns a function pointer.
Tests whether T is an inner class, i.e. a class nested inside another class.
Determines whether T is mutable, i.e. has one of the following qualifiers or a combination of them:
Determines whether T is a nested type, i.e. $(D_KEYWORD class), $(D_KEYWORD struct) or $(D_KEYWORD union), which internally stores a context pointer.
Determines whether T is a pointer type.
Determines whether T is a static array type.
Returns the size in bytes of the state that needs to be allocated to hold an object of type T.
Determines whether T defines a symbol member.
Determines whether T is an abstract class.
Determines whether T is an abstract method.
Determines whether T is an aggregate type.
Determines whether T is a boolean type, i.e. $(D_KEYWORD bool).
Determines whether the type T is copyable.
Determines whether T is a dynamic array type.
Determines whether values of type T can be compared for equality, i.e. using == or != binary operators.
Determines whether T is a final class.
Determines whether T is a final method.
Determines whether T is a floating point type.
Checks whether From is implicitly (without explicit $(D_KEYWORD cast)) to To.
Tests whether I is an instance of template T.
Determines whether T is an integral type.
Determines whether T is a narrow string, i.e. consists of $(D_KEYWORD char) or $(D_KEYWORD wchar).
Determines whether T is a nested function.
Determines whether values of type T can be compared for ordering, i.e. using >, >=, < or <= binary operators.
Determines whether T is a polymorphic type, i.e. a $(D_KEYWORD class) or an $(D_KEYWORD interface).
Determines whether T is a signed numeric type.
Determines whether T is a character type.
Determines whether T is a string, i.e. consists of $(D_KEYWORD char), $(D_KEYWORD wchar) or $(D_KEYWORD dchar).
Checks whether T is a type, same as is(T) does.
Determines whether Args contains only types.
Determines whether T is an unsigned numeric type.
Determines whether T is a wide string, i.e. consists of $(D_KEYWORD dchar).
Returns the mangled name of the symbol T.
Type traits.
Templates in this module are used to obtain type information at compile time.