On Saturday, 22 February 2020 at 18:00:16 UTC, Vinay Sajip wrote:
The following program won't compile if I uncomment the if
statement:
void main()
{
Variant v = complex(1.0, 1.0);
// if (v.peek!(Complex)) {
// writeln("Complex");
// }
writeln(v);
}
I get the same error with v.peek!(complex), which is:
Error: template instance peek!(Complex) does not match template
declaration peek(T)()
The variant can clearly hold a complex value. Someone please
tell me - what am I doing wrong in the peek call?
The type in v isn't Complex, it's Complex!double.
This will work the way you want:
```
void main()
{
Variant v = complex(1.0, 1.0);
if (v.peek!(Complex!double))
{
writeln("Complex");
}
writeln(v);
}
```