[Issue 18780] Inconsistent behavior with Variant holding int converting to unsigned types
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Apr 19 17:59:39 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=18780
monkeyworks12 at hotmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |monkeyworks12 at hotmail.com
--- Comment #1 from monkeyworks12 at hotmail.com ---
Looks like the problem is with std.traits.ImplicitConversionTargets:
pragma(msg, ImplicitConversionTargets!int); //(long, ulong, float, double,
real)
But it appears to be intentional. From ImplicitConversionTargets:
Note:
The possible targets are computed more conservatively than the
language allows, eliminating all dangerous conversions. For example,
`ImplicitConversionTargets!double` does not include `float`.
template ImplicitConversionTargets(T)
{
static if (is(T == bool))
....
else static if (is(T == int))
alias ImplicitConversionTargets =
AliasSeq!(long, ulong, CentTypeList, float, double, real);
else static if...
}
I don't know if it's better to change Variant or create a new, more permissible
version of ImplicitConversionTargets.
--
More information about the Digitalmars-d-bugs
mailing list