Nullable!(int, 0) unreliable2(in int val) pure nothrow { if (val == 0) { return typeof(return)(); } else { return typeof(return)(val); } }
Sorry, I meant: import std.typecons; Nullable!int unreliable1(in int val) pure nothrow { if (val == 0) { return typeof(return)(); } else { return typeof(return)(val); } } Nullable!(int, 0) unreliable2(in int val) pure nothrow { return typeof(return)(val); } void main() { auto nx1 = unreliable1(10); auto nx2 = unreliable2(10); } Bye, bearophile