0

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

4

0 回答 0