Thread overview | |||||
---|---|---|---|---|---|
|
February 22, 2020 How do you peek a variant containing a complex value? | ||||
---|---|---|---|---|
| ||||
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? |
February 22, 2020 Re: How do you peek a variant containing a complex value? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vinay Sajip | 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);
}
```
|
February 23, 2020 Re: How do you peek a variant containing a complex value? | ||||
---|---|---|---|---|
| ||||
Posted in reply to nullptr | On Saturday, 22 February 2020 at 18:32:06 UTC, nullptr wrote:
>
> The type in v isn't Complex, it's Complex!double.
>
Ah, great. Thanks! Missed that.
|
Copyright © 1999-2021 by the D Language Foundation