3033. basic_string move ctor is underspecified

Section: 24.3.2.2 [string.cons] Status: NAD Editorial Submitter: Peter Sommerlad Opened: 2017-11-09 Last modified: 2017-11-29

Priority: Not Prioritized

View all other issues in [string.cons].

View all issues with NAD Editorial status.

Discussion:

The standard has a hole in the specification of basic_string's move constructor that seems not only be editorial. In 24.3.2.2 [string.cons] p2:

basic_string(const basic_string& str);
basic_string(basic_string&& str) noexcept;

Effects: Constructs an object of class basic_string as indicated in Table 56. In the second form, str is left in a valid state with an unspecified value.

refers to Table 56, but that table only speaks about copy-ctor. According to Pablo, move and copy differ in what they do. Move ctor of basic_string needs separate table (entry) to describe what happens.

[28-Nov-2017 After discussion on the ML, closing as NAD Editorial]

Proposed resolution: