|
|
1
11
实施
保留声明的类型(但不初始化)将修复错误(
您看到的错误来自于用于测试此问题的技术的实现;不完整类型。大体上
这里可能的解决方案如下:;
为什么需要完整的类型?
实例化通过
关键是
使命感
这种情况的另一种选择可能是使用 直接初始化 如下所示;
关于 非静态数据成员初始化器 (NSDMI)以及这是否 需要存在成员定义的上下文 至少对于clang(以及可能的gcc)来说,这似乎是一个这样的背景。 |
|
|
2
9
声明:
调用 复制初始化 。这具有与以下相同的语义:
一、 e.它构建一个临时prvalue。必须销毁此临时prvalue。析构函数需要看到
您可以使用
直接初始化
,以及
使现代化
Casey
指出gcc-4.9当前实例化
|
|
3
4
代替
具有
以修复错误。 |
|
4
2
N3936[temp.inst]/2状态:
因此,这个问题实际上归结为带有非静态数据成员初始值设定项(NSDMI)的声明是否构成了“一个需要成员定义存在的上下文”。虽然很明显 声明 如果要确定NSDMI是否为初始化成员的适当类型,则立即需要类型构造函数的 定义 只有封闭类型的构造函数/析构函数才需要构造函数/析析构函数的,并且实现是不一致的。 也就是说,NSDMI的语义存在几个问题,目前正在由核心语言小组进行审查:
所以这里出现混乱并不奇怪。 |
|
|
Setu · 如何将元素从std::map移动到std::vector 1 年前 |
|
Konvt · 标准库中异常构造函数参数类型问题 1 年前 |
|
|
bourne · 关于操作员超载的澄清 1 年前 |