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);
}

Reply via email to