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.
std.demangle
Demangle D mangled names.
License:
Authors:
Walter Bright,
Thomas Kühne, Frits van Bommel
Source std/demangle.d
- pure nothrow @safe string
demangle
(stringname
); - Demangle D mangled names.Parameters:
string name
the mangled name Returns:A string. If it is not a D mangled name, it returns its argument name.Examples:// int b in module a writeln(demangle("_D1a1bi")); // "int a.b" // char array foo in module test writeln(demangle("_D4test3fooAa")); // "char[] test.foo"
Examples: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); }
Copyright © 1999-2018 by the D Language Foundation | Page generated by
Ddoc on Wed May 2 06:28:54 2018