- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在DR 2137我们有以下文本(重点是我的):
It is not clear in code like the following that selecting a copy/move constructor is the correct choice when an initializer list contains a single element of the type being initialized, as required by issue 1467:
#include <initializer_list>
#include <iostream>
struct Q {
Q() { std::cout << "default\n"; }
Q(Q const&) { std::cout << "copy\n"; }
Q(Q&&) { std::cout << "move\n"; }
Q(std::initializer_list<Q>) { std::cout << "initializer list\n"; }
};
int main() {
Q x = Q { Q() };
}Here the intent is that
Q
objects can contain otherQ
objects, but this is broken by the resolution of issue 1467.
我想了解为什么上面的代码会被 issue 1467 的分辨率破坏.
最佳答案
DR 2147 有这样的声明:“目的是 Q
对象可以包含其他 Q
对象”。鉴于此,它假定如果用户从包含其他 Q
的花括号初始化列表构造 Q
,则用户的意图是调用 >initializer_list
构造函数。
鉴于该假设,不调用 initializer_list
构造函数是“错误的”,这将导致 1467。
不管你是否同意这个逻辑,这就是 2147 背后的想法。这也是允许 [over.match.list] 优先考虑 initializer_list
构造函数而不是任何其他构造函数类型的想法。所以在这种情况下,它是一致的。
关于c++ - DR 2137 我不清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42283586/
MVC3 中的助手是否在 Controller 和 View 中使用? 助手是放置常用 Controller 方法的正确位置吗? 我想创建一个通用方法来获取数据库中的所有子子 ID,并确保它位于正确的
有人可以阐明这两者之间的区别吗,因为它们存在于执行上下文中?我很难阅读 ECMA 262 v 5规范并清楚地看到差异。 谢谢你, 最佳答案 两者都是执行上下文的组件(相同类型),但它们有不同的用途(f
我是一名优秀的程序员,十分优秀!