我试图用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++
编译相同的代码时,出现了预期的错误。prasoon@prasoon-desktop ~ $ g++ bug.cpp
bug.cpp:8: error: duplicate initialization of ‘Prasoon::dummy’
那么,我是否在
Clang
中发现了一个错误? 最佳答案
是的,您发现了一个错误。
该规则在标准中表示:
关于c++ - 我在Clang中发现错误了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3531296/