static if enhancement
Wyatt via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jun 30 10:09:19 PDT 2016
On Thursday, 30 June 2016 at 11:06:56 UTC, Steven Schveighoffer
wrote:
> On 6/29/16 11:40 AM, Wyatt wrote:
>> I might be stepping on a land mine by bringing it up, but
>> isn't this
>> sort of thing what contracts are for?
>
> No landmines here, but no, that isn't what contracts are for.
> Perhaps you mean constraints?
Sure. IME, contracts are generally written as a series of
constraints anyway.
> A constraint will prevent compilation vs. allowing compilation
> but emitting a failure at runtime. I agree this is a better
> mechanism, or just plain allow the compiler to make a proper
> error when you call gun.
Isn't doing it at compile time as simple as using e.g. static
assert(hasMember(T, "gun"))? I do feel like I've been in
situations before where this kind of thing was better as a
recoverable runtime exception, but I can't remember where.
The more I think about this, though, the less the proposal makes
sense for the problem. Like, I get that it might be a tiny bit
annoying, but I see a lot more potential for human error; pulling
a "goto FAIL" and running code that shouldn't be or such.
-Wyatt
More information about the Digitalmars-d
mailing list