下面的代碼編譯的以及都與海灣合作委員會(4.2-4.6),並與鏘(2.1),但是當我運行可執行它給了我「總線錯誤:10」。我不明白原因。的const_cast靜態const成員
#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;
}
我非常肯定,修改你聲明const的東西是未定義的行爲,但我相信有人可以挖掘出精確的語句。 –
+1提供一個最小的完整樣本程序。有關更多信息,請參閱http://sscce.org/。 –