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