dmd.aggregate

Defines a Dsymbol representing an aggregate, which is a struct, union or class.

Specification: Structs, Class.

Members

Classes

AggregateDeclaration
class AggregateDeclaration

Abstract aggregate as a common ancestor for Class- and StructDeclaration.

Enums

ClassKind
enum ClassKind

The ClassKind enum is used in AggregateDeclaration AST nodes to specify the linkage type of the struct/class/interface or if it is an anonymous class. If the class is anonymous it is also considered to be a D class.

Functions

alignmember
uint alignmember(structalign_t alignment, uint memalignsize, uint offset)

Do byte or word alignment as necessary. Align sizes of 0, as we may not know array sizes yet.

apply
int apply(Dsymbol symbol, int function(Dsymbol, void*) fp, void* ctx)

Iterate this dsymbol or members of this scoped dsymbol, then call fp with the found symbol and params.

placeField
uint placeField(uint nextoffset, uint memsize, uint memalignsize, structalign_t alignment, uint aggsize, uint aggalignsize, bool isunion)

Place a field (mem) into an aggregate (agg), which can be a struct, union or class

toChars
const(char)* toChars(ClassKind c)

Give a nice string for a class kind for error messages

Structs

MangleOverride
struct MangleOverride

If an aggregate has a pargma(mangle, ...) this holds the information to mangle.

Meta