
Hartmut Kaiser wrote:
I looked into the Standard and it says there [3.8.6]:
<quote> Similarly, before the lifetime of an object has started but after the storage which the object will occupy has been allocated or, after the lifetime of an
object has ended and before the storage which the object occupied is reused or released, any lvalue which refers to the original object may be used but only in limited ways. Such an lvalue refers to allocated storage (3.7.4.2), and using the properties of the lvalue which do not depend on its value is well-defined. </quote>
Quoting a bit further: <quote> ... if the original object will be or was of a non-POD class type, the program has undefined behavior if: - the lvalue is used to access a non-static data member or call a non-static member function of the object, ... </quote>