- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这小段代码:
struct Res { };
struct A {
virtual Res &&foo();
};
struct B : A {
Res &foo() override;
};
它在GCC中编译,但不在Clang中编译:
https://godbolt.org/z/65rffW。
最佳答案
这实际上是标准缺陷报告的主题,这是一个非常古老的报告:
- Covariant functions and lvalue/rvalue referencesSection: 11.7.3 [class.virtual] Status: CD2 Submitter: James Widman Date: 1 September, 2009
[Voted into WP at March, 2010 meeting.]
11.7.3 [class.virtual] paragraph 5 requires that covariant return types be either both pointers or both references, but it does not specify that references must be both lvalue references or both rvalue references. Presumably this is an oversight.
Proposed resolution (February, 2010):
Change 11.7.3 [class.virtual] paragraph 5 bullet 1 as follows:
...If a function D::f overrides a function B::f, the return types of the functions are covariant if they satisfy the following criteria:
- both are pointers to classes, both are lvalue references to classes, or both are rvalue references to classes106
...
关于c++ - GCC : rvalue ref and lvalue ref are covariant return types中的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66698168/
来自 here : bool shouldReclip(covariant CustomClipper oldClipper); AFAIK,关键字covariant 用于重写一个方法,明确告诉分析器
假设我有这两个类 class BaseClass { protected HashSet container; } class DerivedClass : BaseClass { D
问题 我想实现一些算法,这些算法在图上运行并返回节点对的分数,指示这些节点是否相似。这些算法应该适用于单个节点对和所有可能的节点对。在后一种情况下,应返回一个集合/矩阵。 我的方法 算法源自 clas
我刚刚遇到一个关于泛型和协变的有趣问题,长话短说,我花了 30 分钟尝试声明一个类型,直到我放弃。 为了清楚起见:我已经有了解决方法,目前不需要我的项目帮助。我之所以问这个问题是因为我是异常复杂的泛型
我有这样一个类: public class MyClass{ private MyTape data; private List someOtherdata; } 我正在尝试在 And
今天,我深入探讨了Liskov的替代原理和协方差/协方差。 而且我陷入了两者之间的差异: T = TypeVar("T", bound=Union[A, B]) T = TypeVar("T", A,
我正在尝试使用Ceres编写BA优化器,并希望为优化结果计算协方差。但是该程序停留在covariance.Compute(covariance_blocks, &problem)上,似乎永远不会停止计
我正在编写一个名为 Factory 的通用工厂类 //abstract factory template class Factory{ public: virtual C*
当我们有两个结构,并且一个可以隐式转换为另一个时,它看起来像 System.Nullable<>两者的版本也可以隐式转换。就像,如果结构 A隐式转换为 struct B , 然后 A?转换为 B? 这
我正在阅读 Jon Skeet 的《深入了解 C#》。虽然我已经理解了 CoVariance 和 ContraVariance 的概念,但是我无法理解这一行: Well, covariance is
我正在读《深入Scala》第一节,第一节中有两句话是关于“协方差”和“逆变”的: Covariance (+T or ? extends T) is when a type can be coerce
我正在尝试创建一个二叉树类 Tree和二叉搜索树类 BST它继承自 Tree ,以及 iterator每个嵌套类,其中 BST::iterator继承自 Tree::iterator . 现在,问题是
我通过继承创建了两个简单的类,并在子类中添加了一个虚函数和覆盖。 class Parent { public: virtual Parent foo(); }; class Child : p
我有一个非常复杂的类层次结构,其中的类是相互依赖的交叉类:有两个抽象类 A 和 C,它们分别包含一个返回 C 和 A 实例的方法。在他们继承的类中,我想使用协变类型,在这种情况下这是一个问题,因为我不
我试图写一个不可变的 Matrix[A]类(class)。我希望该类在 A 上是协变的但是当我把 +前面A编译器开始提示类中的某些操作。 以下是我的 Matrix 的相关子集类(实际类比以下子集大 5
我读了一些关于用于 CV 对象跟踪的卡尔曼滤波器的著作,但我找不到关于选择的一些引用:1)过程噪声协方差 Q; 2)测量噪声协方差R。到目前为止,我已经意识到该模型是运动方程(有人使用加速度作为状态变
我有以下表示数值数组的类 class Array { protected : double *data; // this will hold the data of the array
我有以下情况: 我指定一个纯虚函数: 虚拟 PredictedMatch PredictMatch(const Match &match) const = 0; 我还有: 类 ImpactPredic
我试图从网上的几篇文章和 StackOverflow 上的问题中找出 Covariance 和 Contravariance 这两个词的确切含义,据我所知,这只是多态性的另一种说法。 我上面的说法正确
新 Guava 10 Optional 状态是自然协变的,因此可以强制转换。 如果我尝试,它看起来有点难看: Optional opti = Optional.of(42); Optional op
我是一名优秀的程序员,十分优秀!