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.


Do mangling for C++ linkage.
This is the POSIX side of the implementation. It exports two functions to C++, toCppMangleItanium and cppTypeInfoMangleItanium.

Source cppmangle.d

References Follows Itanium C++ ABI 1.86 section 5.1 which is where the grammar comments come from.

Bugs: enter C++, mangling as the keywords.
package CppOperator isCppOperator(scope const Identifier id);
Check if id is a C++ operator
Identifier id identifier to be checked
CppOperator, or Unknown if not a C++ operator
const(char)* toCppMangleItanium(Dsymbol s);
const(char)* cppTypeInfoMangleItanium(Dsymbol s);
const(char)* cppThunkMangleItanium(FuncDeclaration fd, int offset);
bool isAggregateDtor(const Dsymbol sym);
Determine if sym is a full aggregate destructor.
Dsymbol sym Dsymbol
true if sym is an aggregate destructor