Getting the source text of an expression

FreeSlave freeslave93 at gmail.com
Thu Dec 17 21:24:40 UTC 2020


On Thursday, 17 December 2020 at 19:45:38 UTC, Dave P. wrote:
> In C, you can use a macro to get the source text of an 
> expression as a string. For example
>
> #include <stdio.h>
> #define PRINT_INT(x) printf(#x " = %d\n", x)
>
> int main(){
>     // prints "3 = 3"
>     PRINT_INT(3);
>     int x = 4;
>     // prints "x = 4"
>     PRINT_INT(x);
> #define FOO 5
>     // prints "FOO = 5"
>     PRINT_INT(FOO);
> #define BAR FOO
>     // prints "BAR = 5"
>     PRINT_INT(BAR);
>     return 0;
> }
>
> Is there a feature of D that allows you to achieve a similar 
> goal? I’ve used this in the past for logging for example.

Something like that?

import  std.stdio;

void print_int(alias n)()
{
     writeln(n.stringof~"=", n);
}

void main()
{
     int x = 42;
     print_int!(x);
     print_int!(7);
}


More information about the Digitalmars-d-learn mailing list