///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
Runtime type information about a class. Can be retrieved for any class type or instance by using the .classinfo property. A pointer to this appears as the first entry in the class's vtbl[].
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
All D class objects inherit from Object.
Runtime type information about a type. Can be retrieved for any type using a <a href="../expression.html#typeidexpression">TypeidExpression</a>.
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
Initialize the modules.
Destruct the modules.
This function will be called when an Exception is constructed. The user-supplied trace handler will be called if one has been supplied, otherwise no trace will be generated.
Overrides the default trace hander with a user-supplied version.
Information about an interface. When an object is accessed via an interface, an Interface* appears as the first entry in its vtbl.
Array of pairs giving the offset and type information for each member in an aggregate.
Pointer map for precise heap scanning. Format: PointerMap pm = typeid(T).pointermap; pm.bits = header ~ scan_bits ~ pointer_bits size_t header is the number of pointer sized units in T (T.sizeof/size_t.sizeof) size_t[] scan_bits is the bitmap; each bit covers size_t bytes of T, meaning: 0: guaranteed not to be a pointer, don't scan 1: possibly a pointer, must scan size_t[] pointer_bits is a second bitmap similar to scan_bits. If the corrsponding bit in scan_bits is 0, the bit is 0; otherwise its meaning is: 0: pointer can not be moved, because it's possibly an integer 1: pointer can be moved, the corresponding word is always a pointer Note that not the bit-arrays are concatenated, but the size_t arrays. This implies all GC-aware pointers must be aligned on size_t boundaries. The compiler won't set any bits for unaligned pointer fields. The least significant bit of a size_t item is considered the first bit. PointerMap.init is a conservative scanning mask equivelant to void*[]
code for manually building PointerMaps separate struct from PointerMap because for some representations, it may be hard to handle arbitrary pointerAt() calls to update the internal data structure (think of pointer maps encoded as lists of runs etc.) xxx untested
Part of the D programming language runtime library. Forms the symbols available to all D programs. Includes Object, which is the root of the class object hierarchy.
This module is implicitly imported.