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