https://issues.dlang.org/show_bug.cgi?id=18780

[email protected] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #1 from [email protected] ---
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.

--

Reply via email to