Trouble with std.Variant
Nicolas Sicard via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Sep 19 00:46:16 PDT 2014
On Thursday, 18 September 2014 at 21:14:55 UTC, Ali Çehreli wrote:
> On 09/18/2014 02:06 PM, ddos wrote:
>> The following code fails because Vec2.length() does not return
>> int ...
>> so Variant is only usable with types that do not have a method
>> with name
>> length() ?? i'm confused
>>
>> On Thursday, 18 September 2014 at 21:03:47 UTC, ddos wrote:
>>> struct Vec2
>>> {
>>> float[2] vec;
>>>
>>> public float length()
>>> {
>>> return sqrt(vec[0]*vec[0]+vec[1]*vec[1]);
>>> }
>>> }
>>>
>>> int main(string[] argv)
>>> {
>>> Vec2 test;
>>> Variant v = test;
>>> return 0;
>>> }
>>
>
> Compiles and runs without error with dmd git head, after adding
> the following two lines: ;)
>
> import std.math;
> import std.variant;
>
> Ali
It shouldn't work in dmd git head. See Andrei's answer in
https://issues.dlang.org/show_bug.cgi?id=5501
More information about the Digitalmars-d-learn
mailing list