是否允许重复初始化静态成员?
我尝试使用 Clang
编译下面的代码 使用
class Prasoon{
static const int dummy = 0;
};
int const Prasoon::dummy = 0;
int main(){}
Clang
编译时,上面的代码没有给出任何错误。
prasoon@prasoon-desktop ~ $ clang++ --version
clang version 2.8 (trunk 107611)
Target: i386-pc-linux-gnu
Thread model: posix
prasoon@prasoon-desktop ~ $ cat bug.cpp
class Prasoon{
private:
static const int dummy = 0;
};
int const Prasoon::dummy = 0;
int main(){}
prasoon@prasoon-desktop ~ $ clang++ bug.cpp
prasoon@prasoon-desktop ~ $
但是当我使用 g++
编译相同的代码时code> 我收到了预期的错误。
prasoon@prasoon-desktop ~ $ g++ bug.cpp
bug.cpp:8: error: duplicate initialization of ‘Prasoon::dummy’
那么我在 Clang
中发现了错误吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,您发现了一个错误。
该规则在标准中表述为:
Yes, you have found a bug.
The rule is expressed in the standard:
是的,这确实是一个错误。我偶然发现了您向 clang 提交的 错误报告 - 感谢您花时间提交它 :) 虽然此错误最初在 4/ 上被记录为 错误 23/10,你的提交引起了我的注意,我提交了一个简单的 补丁发送给开发者小组进行审核。
Yes this is indeed a bug. I stumbled upon your bug report to clang -- thanks for taking the time to submit it :) While this bug was initially logged as a bug on 4/23/10, your submission brought it to my attention and I have submitted a simple patch to the developer's group for their review.