【发布时间】:2015-11-19 16:33:18
【问题描述】:
在您开始将其标记为重复之前,我已经阅读了this,但我的问题是关于 MSVS 编译器。链接的问题谈到了 g++ 编译器。
我在 MSVS 2015 编译器上试用了这个程序,该程序最后更新于 2015 年 11 月 3 日here
class Test
{ };
int main()
{ const Test t; }
根据default initialization,上面的程序应该编译失败。它说:
如果 T 是 const 限定类型,则它必须是具有 用户提供的默认构造函数。
因此,在上述程序的情况下需要诊断。但是 MSVS 没有给出任何正确的诊断。根据 C++ 标准,MSVS 在这里似乎没有得到确认。 MSVS 中的这个 bug 和 g++ 中的一样吗?
【问题讨论】:
-
我想我记得读过一些人认为这是标准中的一个缺陷,即使标准当前说它不是,代码也应该是有效的。如果我能找到参考资料,我会把它作为答案。
-
@hvd:等待您的宝贵答复。
-
这就是 @101010 现在已经找到的 DR 253。我不会发布重复的答案。 :)
标签: c++ object constructor initialization constants