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