View source code
Display the source code in core/demangle.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.
Function core.demangle.mangleFunc
Mangles a D function.
char[] mangleFunc(T, FT)
(
const(char)[] fqn,
char[] dst = null
) pure nothrow @safe
if (is(FT == function));
Parameters
Name | Description |
---|---|
T | function pointer type. |
fqn | The fully qualified name of the symbol. |
dst | An optional destination buffer. |
Returns
The mangled name for a function with function pointer type T and the given fully qualified name.
Example
writeln(mangleFunc!(int function(int))("a.b")); // "_D1a1bFiZi"
static if (hasTypeBackRef)
{
// "_D6object6Object8opEqualsFCQsZi"
writeln(mangleFunc!(int function(Object))("object.Object.opEquals"));
// "_D6object6Object8opEqualsFCQsQdZi"
writeln(mangleFunc!(int function(Object, Object))("object.Object.opEquals"));
}
else
{
auto mngl = mangleFunc!(int function(Object))("object.Object.opEquals");
writeln(mngl); // "_D6object6Object8opEqualsFC6ObjectZi"
auto remngl = reencodeMangled(mngl);
writeln(remngl); // "_D6object6Object8opEqualsFCQsZi"
}
// trigger back tracking with ambiguity on '__T', template or identifier
writeln(reencodeMangled("_D3std4conv4conv7__T3std4convi")); // "_D3std4convQf7__T3stdQpi"
Authors
Sean Kelly
License
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.