basic_ios::move
should accept lvaluesSection: 31.5.4.3 [basic.ios.members] Status: C++11 Submitter: Howard Hinnant Opened: 2009-04-25 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [basic.ios.members].
View all issues with C++11 status.
Discussion:
With the rvalue reference changes in
N2844
basic_ios::move
no longer has the most convenient signature:
void move(basic_ios&& rhs);
This signature should be changed to accept lvalues. It does not need to be
overloaded to accept rvalues. This is a special case that only derived clients
will see. The generic move
still needs to accept rvalues.
[ Batavia (2009-05): ]
Tom prefers, on general principles, to provide both overloads. Alisdair agrees.
Howard points out that there is no backward compatibility issue as this is new to C++0X.
We agree that both overloads should be provided, and Howard will provide the additional wording. Move to Open.
[ 2009-05-23 Howard adds: ]
Added overload, moved to Review.
[ 2009 Santa Cruz: ]
Move to Ready.
Proposed resolution:
Add a signature to the existing prototype in the synopsis of 31.5.4 [ios] and in 31.5.4.3 [basic.ios.members]:
void move(basic_ios& rhs); void move(basic_ios&& rhs);