View source code
Display the source code in dmd/target.d from which this page was generated on github.
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 local clone.

Struct dmd.target.TargetCPP

Functions and variables specific to interface with extern(C++) ABI.

struct TargetCPP ;

Fields

NameTypeDescription
exceptions boolset if catching C++ exceptions is supported
reverseOverloads boolset if overloaded functions are grouped and in reverse order (such as in dmc and cl)
runtime dmd.target.TargetCPP.Runtimevendor of the C++ runtime to link against
splitVBasetable boolset if C++ ABI uses separate tables for virtual functions and virtual bases
twoDtorInVtable booltarget C++ ABI puts deleting and non-deleting destructor into vtable
wrapDtorInExternD boolset if C++ dtors require a D wrapper to be callable from runtime

Methods

NameDescription
derivedClassOffset (baseClass) Get the starting offset position for fields of an extern(C++) class that is derived from the given base class.
fundamentalType (t, isFundamental) Checks whether type is a vendor-specific fundamental type.
parameterType (t) Get the type that will really be used for passing the given argument to an extern(C++) function, or null if unhandled.
thunkMangle (fd, offset) Get mangle name of a this-adjusting thunk to the given function declaration for C++ ABI.
toMangle (s) Mangle the given symbol for C++ ABI.
typeInfoMangle (cd) Get RTTI mangling of the given class declaration for C++ ABI.
typeMangle (t) Gets vendor-specific type mangling for C++ ABI.

Authors

Walter Bright

License

Boost License 1.0