This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.

### 1345. Library classes should have `noexcept` move operations

Section: 16 [library] Status: Resolved Submitter: BSI Opened: 2010-08-25 Last modified: 2016-01-28

Priority: Not Prioritized

View other active issues in [library].

View all other issues in [library].

View all issues with Resolved status.

Discussion:

Addresses GB-61

All library types should have non-throwing move constructors and move-assignment operators unless wrapping a type with a potentially throwing move operation. When such a type is a class-template, these operations should have a conditional `noexcept` specification.

There are many other places where a `noexcept` specification may be considered, but the move operations are a special case that must be called out, to effectively support the `move_if_noexcept` function template.

[ Resolution proposed by ballot comment: ]

Review every class and class template in the library. If `noexcept` move constructor/assignment operators can be implicitly declared, then they should be implicitly declared, or explicitly defaulted. Otherwise, a move constructor/move assignment operator with a `noexcept` exception specification should be provided.

[ 2010-10-31 Daniel comments: ]

> The proposed resolution of n3157 would satisfy this request.

[2011-03-24 Madrid meeting]

Resolved by papers to be listed later

Proposed resolution:

See n3157