以下代码与 GCC (4.2-4.6) 和 Clang (2.1) 都可以很好地编译,但是当我运行可执行文件时,它给了我“总线错误:10”。我不明白原因。
#include <iostream>
struct A
{
static int const v;
A() { ++*const_cast<int *>(&A::v); }
};
int const A::v = 0;
int main(int argc, char * argv[])
{
A a, b, c;
std::cout << a.v << std::endl;
return 0;
}