以下代码无法使用 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 一起工作?