stringof and mixins when the types aren't available
David Nadlinger
code at klickverbot.at
Sun Jun 16 17:27:05 PDT 2013
On Monday, 17 June 2013 at 00:10:58 UTC, Adam D. Ruppe wrote:
> Consider the following:
>
> module a;
> T getInit(T)() {
> return mixin(T.stringof ~ ".init");
> }
>
> […]
>
> Any ideas to solve this, or do you have any techniques for
> string mixins you'd like to share for general knowledge?
The fix is simple: Replace `mixin(T.stringof ~ ".init")` by
`return mixin("T.init")`. I am not mocking you here, using
.stringof for codegen is amost always a bug, and it is usually
possible to rewrite the code in such a way that just
template-local names are used.
I've done quite a bit of this kind of code for Thrift, so if you
post a more concrete example that is giving you trouble, I might
be able to help.
David
More information about the Digitalmars-d
mailing list