On 05-08-2012 11:47, Simen Kjaeraas wrote:
On Sun, 05 Aug 2012 11:36:56 +0200, Jakob Ovrum <[email protected]>
wrote:
On Friday, 3 August 2012 at 19:19:24 UTC, Alex Rønne Petersen wrote:
Does anyone else find this behavior too strict?
Yes. Sounds like yet another case of forcing bitwise const on
something that should only be logically const.
Please stop forcing bitwise constancy on everything. Not everything
needs to work with immutable, it should be opt-in (which in this case
could mean explicitly marking the invariant as const) for any type.
I was about to argue that non-const invariants could not be called when
calling const or immutable member functions, but then it hit me that
those shouldn't be able to influence the state checked by the invariant
anyway.
Sure they can. If the invariant can influence something outside of the
object, then it can potentially influence the object's members. For
example, a global variable could hold a non-const reference to something
that the object also has a reference to.
Aliasing is a bitch. ;)
--
Alex Rønne Petersen
[email protected]
http://lycus.org