digitalmars.D - std.variant overloaded operators bug?
- 0ffh (20/20) Oct 16 2007 Hi!
Hi!
I declare and initialise two Variants:
Variant va=1;
Variant vb=-2;
This works as expected:
printf("%i\n",va.get!(int));
printf("%i\n",vb.get!(int));
Here be dragons at runtime:
printf("%i\n",(va+vb).get!(int));
-> Error: Variant: attempting to use incompatible types ulong and int
printf("%i\n",(va*vb).get!(int));
-> Error: Variant: attempting to use incompatible types ulong and int
Why the heck "ulong"? Makes no sense to me...
printf("%ul\n",(va+vb).get!(ulong)); // of course this is nonsense for -1
printf("%ul\n",(va*vb).get!(ulong)); // of course this is nonsense for -2
This, erm, "works", but I wouldn't...
printf("%i\n",(va+vb).get!(ulong));
printf("%i\n",(va*vb).get!(ulong));
I made a bug report, I hope I made nothing wrong (first-timer there)...
Regards, Frank
Oct 16 2007








0ffh <spam frankhirsch.net>