On Tuesday, 28 July 2015 at 15:15:58 UTC, Steven Schveighoffer wrote:
the only thing I can thing of is that true/false are (or have the potential to be in this context) expressions, which means one could use compile-time logic to specify inlining. The same wouldn't be true of arbitrary identifiers.

Which is likely why boolean values were chosen. It's the same for why if we ever do end up with being able to negate attributes, it's almost certainly going to be something like final(false) rather than !final. It's far more flexible in generic code.

Now, in the case of inlining, I don't know how much it actually buys you, since you would probably normally wouldn't be looking to have that inferred or determined by another piece of code, but if boolean values are used, you at least have that flexibility without having to use static if to provide the function multiple times.

- Jonathan M Davis

Reply via email to