Compare type with another at CT
Stanislav Blinov
stanislav.blinov at gmail.com
Thu Jan 23 08:45:45 PST 2014
On Thursday, 23 January 2014 at 16:40:49 UTC, Frustrated wrote:
> Yes, I that is what I tried initially but the error was due to
> that static if.
>
> Not sure why
>
> but
>
> static if (is(T : A))
> {
> ...
> }
> static assert(0, "error");
>
>
> doesn't work as the assert is called no matter what. Initially I
> forgot to return the value after changing the code but that
> doesn't matter.
As it should be. That static assert gets compiled
unconditionally, thus asserts.
> Had to change it to
>
>
> static if (is(T : A))
> {
> ...
> return ...;
> } else
> static assert(0, "error");
> return null;
>
> I guess because return is not "static" in some sense.
else is the correct thing to do here. Otherwise you could have
put a runtime assert(0) there, i.e.:
static if (is(T : A))
{
return "All is good";
}
assert(0, "This should never happen!");
More information about the Digitalmars-d-learn
mailing list