以下代码无法使用GCC 6和32位模式进行编译(在amd64主机上)。
class foo {
static constexpr const char* ptr = reinterpret_cast<const char*>(0xff);
};
int main() {
return 0;
}
编译命令:
g++ -m32 test.cc
错误信息是:
test.cc:2:38: error: reinterpret_cast from integer to pointer
static constexpr const char* ptr = reinterpret_cast<const char*>(0xff);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
适用于较旧的编译器(GCC 4.9)。它也可以作为内联定义(不是静态成员变量)或以64位模式编译。
有没有办法让它与GCC 6一起工作?