On Monday, March 18, 2013 01:20:40 Timon Gehr wrote: > >> So my question is "Why are the arguments to opEquals and opCmp (for > >> Objects) not declared in or const?". > > > > Because not all valid implementations can be. They shouldn't be in > > Object anyway.
Yeah. It was agreed that opCmp, opEquals, toString, and toHash would be removed from Object, since they don't need to be there and cause unnecessary issues with const, but AFAIK, no work has been done yet to make that that work. I would of the things that would likely have to be finished first would be the refactoring of the built-in AAs so that they're templated types internally, and I'm sure that there are similar roadblocks that will need to be sorted out. Long term though, none of that needs to be on Object and should be left to derived classes to add with whatever constness (or @safety or whatever) that is appropriate for them. - Jonathan M Davis