reflection based on my experience so far on compile-time meta-programming in D as a novice user: the problems

mw mingwu at gmail.com
Mon Sep 14 17:03:03 UTC 2020


On Monday, 14 September 2020 at 09:14:42 UTC, Sebastiaan Koppe 
wrote:
>
> I have been trying, but there is one I can't get...
>
> ---
>
> import std;
>
> string generate(T)() {
>     return "%s bla;".format(T.stringof);
> }
>
> void main() {
>     mixin(generate!int);
>     bla = 5;
> }

Thanks for the simple example to illustrate my points:

-- in D, there are too many choices, with no clear guideline 
which one is *THE* one to use for a particular purpose
-- in D, there is no easy way to convert between token <==> 
string.

from the following discussions of this example, it clearly shows 
people have different choices to pass either the token <int>, or 
string "int", and use ".stringof" or ".mangleof", some leads to 
dead end, some cause scope errors.


(And Sebastiaan is a long timer on this forum than me, yet still 
puzzled to make this simple meta-programming example to work.)



More information about the Digitalmars-d mailing list