The term "uninitialized" refers to any value is not initialized and therefore in an unusable state. If a value is uninitialized, the only valid operations on it are writes. The only way for an uninitialized value to stop being uninitialized is for it to undergo initialization
. This does not include assignment
even if the operator delete
of the type of the value does not contain any read operations.
Examples:
initializer value
operator delete
operator destructive move
operator forward
array
after the array
undergoes initialization