View source code
Display the source code in std/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 std.demangle.demangle
Demangle D mangled names.
string demangle
(
string name
) pure nothrow @safe;
Parameters
Name | Description |
---|---|
name | the mangled name |
Returns
A string
. If it is not a D mangled name, it returns its argument name.
Example
// int b in module a
writeln(demangle("_D1a1bi")); // "int a.b"
// char array foo in module test
writeln(demangle("_D4test3fooAa")); // "char[] test.foo"
Example
This program reads standard in and writes it to standard out, pretty-printing any found D mangled names.
import std .ascii : isAlphaNum;
import std .algorithm .iteration : chunkBy, joiner, map;
import std .algorithm .mutation : copy;
import std .conv : to;
import std .demangle : demangle;
import std .functional : pipe;
import std .stdio : stdin, stdout;
void main()
{
stdin .byLineCopy
.map!(
l => l .chunkBy!(a => isAlphaNum(a) || a == '_')
.map!(a => a[1] .pipe!(to!string, demangle)) .joiner
)
.copy(stdout .lockingTextWriter);
}
Authors
Walter Bright, Thomas Kühne, Frits van Bommel
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.