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