const_cast статического const member

Следующий код хорошо компилируется как с 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;
}
8
задан mattia.penati 8 August 2011 в 19:30
поделиться