成员函数
f
的非引用限定重载是否符合C++20标准? Clang 和 GCC 似乎都接受它。他们都在拉木棍的短端吗? C++20 标准对此有什么规定?
#include <concepts>
struct s {
int f(auto...)&;
void f(auto...); // clang ok, gcc ok, msvc nope
};
static_assert(std::same_as<decltype(s{}.f()), void>);
MSVC 的错误消息:
<source>(5): error C2559: 'void s::f(_T0...)': cannot overload a member function
without ref-qualifier with a member function with ref-qualifier