On Tuesday, 10 May 2022 at 13:14:20 UTC, Salih Dincer wrote:
must satisfy the following constraint:
That is your type protection here, a constraint.Alternatively you can put the constraint in a function and make it more verbose:
```d bool isAllowedType(T)() { static assert(!is(T == bool), "Nope"); return true; } void fun(T = int)(T arg) if(isAllowedType!T) { //.. } fun(0); // ok fun(false); // not allowed ```