Created on 2014-10-25.00:00:00 last changed 121 months ago
Notes from the November, 2014 meeting:
CWG agreed that 9.4.4 [dcl.init.ref] should be changed to consider converting constructors in this case.
Consider the following example:
struct T {
T() {}
T(struct S&) {}
};
struct S {
operator T() { return T(); }
};
int main()
{
S s;
T&& t(s); // #1
}
Because there are two possible conversions from S to T, one by conversion function and the other by converting constructor, one might expect that the initialization at #1 would be ambiguous. However, 12.2.2.7 [over.match.ref] (used in the relevant bullet of 9.4.4 [dcl.init.ref], paragraph 5.2.1.2) only deals with conversion functions and ignores converting constructors.
History | |||
---|---|---|---|
Date | User | Action | Args |
2014-11-24 00:00:00 | admin | set | messages: + msg5219 |
2014-10-25 00:00:00 | admin | create |