On Friday, 29 January 2016 at 17:01:46 UTC, Adrian Matoga wrote:
On Friday, 29 January 2016 at 16:36:01 UTC, Steven Schveighoffer wrote:
On 1/29/16 10:28 AM, Adrian Matoga wrote:
[...]

is(T) is supposed to be false if T is not a valid type.

I would agree with you that the static assert should fail.

-Steve

Oh, there's more:
// this should fail:
static assert(is(CallsFoo!NoFoo));
// this should fail too:
static assert(is(typeof({ alias Baz = CallsFoo!NoFoo; return Baz.init; }())));
// and this:
static assert(__traits(compiles, { alias Baz = CallsFoo!NoFoo; return Baz.init; }()));
// but only this fails:
alias Baz = CallsFoo!NoFoo;

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

Haven't you seen my answer about constraint ?

If you put a constraint on your function template then invalid instantiations are rejected. I mean... this language feature is not just ornamental...

What do you think constraints are used for otherwise ^^

Reply via email to