错误:从整数到指针的reinterpret_cast

时间:2017-04-26 16:15:18

标签: c++ c++11 constexpr reinterpret-cast gcc6

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

0 个答案:

没有答案