小编use*_*785的帖子

GCC 中的奇怪行为:rvalue ref 和 lvalue ref 是协变返回类型

我有一小段代码:

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 不报错?

c++ gcc g++ language-lawyer

10
推荐指数
1
解决办法
218
查看次数

标签 统计

c++ ×1

g++ ×1

gcc ×1

language-lawyer ×1