dmd.dclass
Defines a class declaration.
Specification: Classes
License
Source: dclass.d
Documentation: https://dlang.org/phobos/dmd_dclass.html
-
Declaration
structBaseClass;-
Declaration
boolfillVtbl(ClassDeclarationcd, FuncDeclarations*vtbl, intnewinstance);Fill in
vtbl[] for base class based on member functions of classcd.Input:
vtblif !=NULL, fill it innewinstance!=0 means all entries must be filled in by members ofcd, not members of any base classes ofcd.Return Value
trueif any entries were filled in by members ofcd(not exclusively by base classes)
-
-
Declaration
classClassDeclaration: dmd.aggregate.AggregateDeclaration;-
Declaration
boolstack;trueif this is a scope class -
Declaration
intcppDtorVtblIndex;if this is a C++ class, this is the slot reserved for the virtual destructor
-
Declaration
Baseokbaseok;set the progress of base classes resolving
-
Declaration
ObjcClassDeclarationobjc;Data for a class declaration that is needed for the Objective-C integration.
-
Declaration
final boolisBaseOf2(ClassDeclarationcd);Determine if 'this' is a base class of
cd. This is used to detect circular inheritance only. -
Declaration
boolisBaseOf(ClassDeclarationcd, int*poffset);Determine if 'this' is a base class of
cd. -
Declaration
final const boolisBaseInfoComplete();Determine if 'this' has complete base class information. This is used to detect forward references in covariant overloads.
-
Declaration
final ClassDeclarationsearchBase(Identifierident);Search base classes in depth-first, left-to-right order for a class or interface named '
ident'. Stops at first found. Does not look for additional matches.Parameters
Identifieridentidentifier to search for
Return Value
ClassDeclaration if found,
nullif not -
Declaration
final boolhasMonitor();Return Value
trueif there's a __monitor field -
Declaration
final FuncDeclarationfindFunc(Identifierident, TypeFunctiontf);Find virtual function matching identifier and type. Used to build virtual function tables for interface implementations.
Parameters
Identifieridentfunction's identifier
TypeFunctiontffunction's type
Return Value
function symbol if found,
nullif notErrors: prints error message if more than one match
-
Declaration
final const boolisCOMclass(); -
Declaration
final boolisAbstract(); -
Declaration
const intvtblOffset();Determine if slot 0 of the vtbl[] is reserved for something else. For class objects, yes, this is where the classinfo ptr goes. For COM interfaces, no. For non-COM interfaces, yes, this is where the Interface ptr goes.
Return Value
0 vtbl[0] is first virtual function pointer 1 vtbl[0] is classinfo/interfaceinfo pointer
-
Declaration
const const(char)*kind(); -
Declaration
final voidaddLocalClass(ClassDeclarations*aclasses);
-
-
Declaration
classInterfaceDeclaration: dmd.dclass.ClassDeclaration;-
Declaration
boolisBaseOf(ClassDeclarationcd, int*poffset);Determine if 'this' is a base class of
cd. (Actually, if it is an interface supported bycd)Output: *
poffsetoffset to start of class OFFSET_RUNTIME must determine offset at runtimeReturn Value
falsenot a basetrueis a base -
Declaration
const const(char)*kind(); -
Declaration
const intvtblOffset();Determine if slot 0 of the vtbl[] is reserved for something else. For class objects, yes, this is where the ClassInfo ptr goes. For COM interfaces, no. For non-COM interfaces, yes, this is where the Interface ptr goes.
-