[lib.types.movedfrom]

# 16 Library introduction [[library]](./#library)

## 16.4 Library-wide requirements [[requirements]](requirements#lib.types.movedfrom)

### 16.4.6 Conforming implementations [[conforming]](conforming#lib.types.movedfrom)

#### 16.4.6.17 Moved-from state of library types [lib.types.movedfrom]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L3990)

Objects of types defined in the C++ standard library may be moved
from ([[class.copy.ctor]](class.copy.ctor "11.4.5.3 Copy/move constructors"))[.](#1.sentence-1)

Move operations may be explicitly specified or
implicitly generated[.](#1.sentence-2)

Unless otherwise specified, such moved-from objects shall
be placed in a valid but unspecified state ([[defns.valid]](defns.valid "3.67 valid but unspecified state"))[.](#1.sentence-3)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L3996)

An object of a type defined in the C++ standard library may be
move-assigned ([[class.copy.assign]](class.copy.assign "11.4.6 Copy/move assignment operator")) to itself[.](#2.sentence-1)

Unless otherwise specified, such an assignment places the object in
a valid but unspecified state[.](#2.sentence-2)
