次のコードは、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;
}