Created on 2021-03-10.00:00:00 last changed 36 months ago
Rationale (December, 2021):
This issue is a duplicate of issue 1670.
Given the example,
struct A{ operator auto(){ return 0; } }; int main(){ A a; a.operator auto(); // #1 a.operator int(); // #2 }
there is implementation divergence regarding which, if either, of the calls is well-formed. MSVC and clang reject #2, g++ rejects #1, and EDG rejects both.
According to 9.2.9.7.1 [dcl.spec.auto.general] paragraph 6:
A program that uses a placeholder type in a context not explicitly allowed in 9.2.9.7 [dcl.spec.auto] is ill-formed.
The use of auto as a conversion-type-id in a function call is not mentioned in that section; however, the section is dealing with declarative contexts rather than expressions, so it's not clear how much weight that observation should carry.
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-01-06 00:00:00 | admin | set | messages: + msg6623 |
2022-01-06 00:00:00 | admin | set | status: open -> dup |
2021-03-10 00:00:00 | admin | create |