[basic.indet] p1 says:
When storage for an object with automatic or dynamic storage duration is obtained, the object has an indeterminate value, and if no initialization is performed for the object, that object retains an indeterminate value until that value is replaced.
What exactly does it mean for storage to be acquired for an object? Consider this code snippet:
int a = 0;
new (&a) int;
When is the storage for the int
object created by the new-expression acquired? Is it when the storage for the original object that was created by definition was acquired, or would it be acquired when the object is created by the new-expression?
(Side note: According to P0593 this new object will have an indeterminate value due to [basic.life] p4, however, this is not explicitly specified, unless storage is considered to be acquired when the second object is created)
Edit: This seems to be the subject of a unanswered defect report CWG 1997