Ошибка: reinterpret_cast из целого числа в указатель

Следующий код не скомпилируется с 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 ответов

Другие вопросы по тегам