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