C++ constexpr не работает с reinterpret_cast

В более старых версиях gcc (~6.X) работал следующий код, однако в более новых версиях возникают ошибки компиляции.

struct test{
    constexpr static int* PORT1 = reinterpret_cast<int*>(0x12345678);
};

Компилятор:

error: reinterpret_cast from integer to pointer

C-подобный состав тоже не работает.

Примечание. Это для memory-maped-io, поэтому я действительно хочу читать/записывать по фиксированному адресу.


person Domso    schedule 11.01.2018    source источник
comment
reinterpret_cast не может использоваться в константном выражении.   -  person rustyx    schedule 11.01.2018
comment
поэтому нет возможности заменить #define PORT1 (int*)0x1 в С++   -  person Domso    schedule 11.01.2018