Qian Xu wrote:
grauzone wrote:

Check if the variable is a pointer, and if yes, dereference it:

alias typeof(i) T;
static if (is(T T2 : T2*)) {
T2 i2 = *i;
Format.convert("{}", i2);
} else {
Format.convert("{}", i);
}

Hi again,

I cannot compile this code

What exactly are you doing? What do you want to do? Without knowing this, we can only guess. My first reply to you was also just a guess. I thought maybe you had a templated function, and wanted to dump a templated variable, or so.

Anyway, here's a complete version of my example above. It uses Stdout.formatln instead of Format.convert, but this shouldn't matter at all.

import tango.io.Stdout;

void main() {

    int v = 55;
    int *pv = &v;

    //pv (an int pointer) can be exchanged with v (an int),
    //and it still works
    auto i = pv;

    alias typeof(i) T;
    static if (is(T T2 : T2*)) {
        T2 i2 = *i;
        Stdout.formatln("{}", i2);
    } else {
        Stdout.formatln("{}", i);
    }

}

Reply via email to