Title
The revised forward is not compatible with access-control
Status
resolved
Section
[utility]
Submitter
INCITS

Created on 2010-08-25.00:00:00 last changed 170 months ago

Messages

Date: 2011-05-09.23:20:35

Proposed resolution:

Resolved as NAD Editorial by paper n3143.

Date: 2010-10-24.00:00:00

[ 2010-10-24 Daniel adds: ]

Accepting n3143 would solve this issue.

Date: 2010-10-25.01:00:51

Addresses US-90

In n3090, at variance with previous iterations of the idea discussed in papers and incorporated in WDs, std::forward is constrained via std::is_convertible, thus is not robust wrt access control. This causes problems in normal uses as implementation detail of member functions. For example, the following snippet leads to a compile time failure, whereas that was not the case for an implementation along the lines of n2835 (using enable_ifs instead of concepts for the constraining, of course)

#include <utility>
struct Base { Base(Base&&); };

struct Derived
  : private Base
{
  Derived(Derived&& d)
    : Base(std::forward<Base>(d)) { }
};

In other terms, LWG 1054 can be resolved in a better way, the present status is not acceptable.

History
Date User Action Args
2010-11-18 14:01:09adminsetstatus: nad editorial -> resolved
2010-11-09 13:07:03adminsetstatus: open -> nad editorial
2010-10-25 01:00:51adminsetmessages: + msg5111
2010-10-24 23:23:18adminsetmessages: + msg5086
2010-08-25 00:00:00admincreate