On 9/17/15 4:24 PM, Stefan Koch wrote:
On Thursday, 17 September 2015 at 19:47:05 UTC, Timon Gehr wrote:
I don't get this point. You don't need any annotations to write
ctfe-able code.
ctfe only works with pure functions.
This is not a requirement of ctfe, although the set of functions that
can be pure I think encloses the set of ctfe-able functions (there may
be some exceptions, I'm not sure). The requirements are listed here:
http://dlang.org/function.html#interpretation
But you don't actually have to mark them pure, and a virtual pure
function cannot be CTFE anyways, so this doesn't make a difference.
> I would argue it is very counter-intuitive to mutate any state when
comparing objects.
Then surely you meant const? pure functions can mutate state. I agree
with your statement, though.
I think Object.opEquals and Object.opCmp are going to eventually be
removed, so you can define them however you want.
-Steve