IsTuple returns true for Nullable!SomeTuple

Paul Backus snarwin at gmail.com
Wed Dec 2 12:59:52 UTC 2020


On Wednesday, 2 December 2020 at 05:25:09 UTC, Ben Jones wrote:
> This seems like very surprising behavior to me.  Is it a bug?
>
> import std.typecons;
> alias NT = Nullable!(Tuple!(int, double));
> pragma(msg, isTuple!NT); //prints true!

No, this is not a bug, because Nullable!T currently has an 
implicit conversion to T via `alias this`. [1] However, this 
implicit conversion is deprecated, and will be removed in a 
future release. Once that happens, `isTuple!NT` will be `false`, 
as you'd expect.

[1] 
http://phobos.dpldocs.info/std.typecons.Nullable.1.html#alias-this


More information about the Digitalmars-d-learn mailing list