digitalmars.D.learn - .tupleof.stringof
- Christopher Wright <dhasenan gmail.com> Jan 21 2009
- Christopher Wright <dhasenan gmail.com> Jan 21 2009
- Christopher Wright <dhasenan gmail.com> Jan 21 2009
- Christopher Wright <dhasenan gmail.com> Jan 21 2009
Check this out!
class Foo { int someField; }
pragma (msg, Foo.tupleof[0].stringof); // int
pragma (msg, Foo.tupleof[0].mangleof); // someField
Why is this? It's counterintuitive.
Jan 21 2009
Christopher Wright wrote:Check this out! class Foo { int someField; } pragma (msg, Foo.tupleof[0].stringof); // int pragma (msg, Foo.tupleof[0].mangleof); // someField Why is this? It's counterintuitive.
Oops, no. mangleof does report the mangled name of the input string. It's just that mangleof(i) == i, so my testing incorrectly reported the right result. Now I need to find a CTFE-able demangle. I think ddl has one.
Jan 21 2009
Christopher Wright wrote:Christopher Wright wrote:Check this out! class Foo { int someField; } pragma (msg, Foo.tupleof[0].stringof); // int pragma (msg, Foo.tupleof[0].mangleof); // someField Why is this? It's counterintuitive.
Oops, no. mangleof does report the mangled name of the input string. It's just that mangleof(i) == i, so my testing incorrectly reported the right result.
No, I'm wrong again. mangleof reports the mangled version of the type.
Jan 21 2009
Christopher Wright wrote:Check this out! class Foo { int someField; } pragma (msg, Foo.tupleof[0].stringof); // int pragma (msg, Foo.tupleof[0].mangleof); // someField Why is this? It's counterintuitive.
Okay, no, this example is a shorter version of something else that exemplified this behavior: foreach (i, field; Foo.init.tupleof) pragma (msg, field.stringof); This has the results I described. However, the following has the expected result: pragma (msg, Foo.init.tupleof[0].stringof);
Jan 21 2009









Christopher Wright <dhasenan gmail.com> 