"As if" unclear in [member.functions]
Hubert Tong

Created on 2016-04-15.00:00:00, last changed 2016-05-22.15:38:38.


Date: 2017-02-02.00:41:18

[ 2016-05 Issues Telecon ]

This is related to issue 2563.

Date: 2016-04-15.00:00:00

In N4582 subclause [member.functions], the requirement that:

any call to the member function that would select an overload from the set of declarations described in this standard behaves as if that overload were selected

is unclear in the extent of the "as if". For example, in providing:

basic_string(const charT* s);

for a one-argument call to:

basic_string(const charT* s, const Allocator& a = Allocator());

it can be read that an implementation may be required to call the copy constructor for the allocator since the core language rules for copy elision would not allow the "a" argument to be constructed directly into the member used to store the allocator.

Clarification (even if just a note) would be appreciated.

Date User Action Args
2016-05-22 15:38:38adminsetmessages: + msg8139
2016-04-15 00:00:00admincreate