Problem with Variant

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Fri Jun 28 17:14:22 PDT 2013


On 6/28/13 4:27 PM, develop32 wrote:
> void main()
> {
> struct Vector
> {
> float length();
> }
>
> import std.variant;
> Variant v = Vector();
> }
>
> Currently this does not work, as it seems Variant thinks length() is a
> property restricted to arrays.
>
> "cannot implicitly convert expression ((*zis).length()) of type float to
> int C:\D\dmd2\src\phobos\std\variant.d 488"
>
> I quickly changed that line in variant.do to "static if
> (is(typeof(zis.length)) && is(ReturnType!(zis.length) == size_t))" and
> my code compiles.
>
> Currently its a hack, but should it be more developed and would it not
> interfere with something else?

Could you please paste your note into a bug report? In a perfect world 
you may want to also submit a pull request!

Thanks,

Andrei


More information about the Digitalmars-d mailing list