On Friday, October 12, 2012 07:53:09 monarch_dodra wrote: > Yes, as answered, opAssign may do things to this, such as > dealocate a payload, reduce a ref counter, or who knows what.
A valid point, but it would be easy to explicitly call the invariant at the beginning of opAssign if wanted to ensure that the object's state was valid at the beginning of opAssign. You can't _not_ call the invariant though if the compiler already does. And there's another problem which your suggest against init suggestion wouldn't fix. It's initializing to void: S s = void; If you ever want to do that, you can't have an invariant, or it'll blow up when you try and assign to it. And since it certainly wouldn't be the same as the init property, checking against the init property wouldn't help you any. - Jonathan M Davis
