显式调用具有推导返回类型(自动)的转换运算符的正确语法是什么
我们在 C++ 中什么是运算符 auto的问题中遇到了语言实现之间奇怪的不一致。.
在那里,显式调用具有推导返回类型 (auto) 的转换运算符。但似乎编译器不同意是否应该使用auto或推导类型GCC Clang调用它:
struct A
{
operator auto() { return 0; }
};
int main()
{
A a;
a.operator auto(); // Clang and MSVC: OK, GCC: ERROR
a.operator int(); // Clang and MSVC: ERROR, GCC: OK
}
哪种语言实现是正确的?这是否在标准中指定不足?