我有一小段代码:
struct Res { };
struct A {
virtual Res &&foo();
};
struct B : A {
Res &foo() override;
};
Run Code Online (Sandbox Code Playgroud)
它在 GCC 中编译,但不在 Clang 中编译:https : //godbolt.org/z/65rffW。
根据此处引用的标准语言,左值引用不是右值引用的协变返回类型。
为什么 GCC 不报错?