Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
ddmd.dclass
Compiler implementation of the
D programming language.
Authors:
License:
Source: dclass.d
- struct
BaseClass
; -
- bool
fillVtbl
(ClassDeclarationcd
, FuncDeclarations*vtbl
, intnewinstance
); - Fill in
vtbl
[] for base class based on member functions of classcd
.Input:
vtbl
if !=NULL, fill it innewinstance
!=0 means all entries must be filled in by members ofcd
, not members of any base classes ofcd
.Returns:true
if any entries were filled in by members ofcd
(not exclusively by base classes)
- class
ClassDeclaration
: ddmd.aggregate.AggregateDeclaration; -
- final bool
isBaseOf2
(ClassDeclarationcd
); - Determine if 'this' is a base class of
cd
. This is used to detect circular inheritance only. - bool
isBaseOf
(ClassDeclarationcd
, int*poffset
); - Determine if 'this' is a base class of
cd
. - final const bool
isBaseInfoComplete
(); - Determine if 'this' has complete base class information. This is used to detect forward references in covariant overloads.
- final ClassDeclaration
searchBase
(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:Identifier ident
identifier to search for Returns:ClassDeclaration if found,null
if not - final FuncDeclaration
findFunc
(Identifierident
, TypeFunctiontf
); - Find virtual function matching identifier and type. Used to build virtual function tables for interface implementations.Parameters:
Identifier ident
function's identifier TypeFunction tf
function's type Returns:function symbol if found,null
if notErrors: prints error message if more than one match
- final const bool
isCOMclass
(); - final bool
isAbstract
(); - const int
vtblOffset
(); - 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.Returns:0 vtbl[0] is first virtual function pointer 1 vtbl[0] is classinfo/interfaceinfo pointer
- const const(char)*
kind
(); - final void
addLocalClass
(ClassDeclarations*aclasses
);
- class
InterfaceDeclaration
: ddmd.dclass.ClassDeclaration; -
- bool
isBaseOf
(ClassDeclarationcd
, int*poffset
); - Determine if 'this' is a base class of
cd
. (Actually, if it is an interface supported bycd
)Output: *
poffset
offset to start of class OFFSET_RUNTIME must determine offset at runtimeReturns:false
not a basetrue
is a base - const const(char)*
kind
(); - const int
vtblOffset
(); - 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.
Copyright © 1999-2017 by the D Language Foundation | Page generated by
Ddoc on Sat Nov 4 04:02:08 2017