Тот факт, что вы объявили pch1
и pch2
как constexpr
, сам по себе не делает их const int *
, поэтому вам потребуется:
constexpr int ch1 = 5;
constexpr const int* pch1 = &ch1;
constexpr int ch2 = 5;
constexpr const int* pch2 = &ch2;
Однако тогда вы получите:
error: '& ch1' is not a constant expression
error: '& ch2' is not a constant expression
Значит, вы все еще не выигрываете.
Живая демонстрация
Изменить: Как Крис указывает, что вы можете решить последнюю проблему, объявив ch1
и ch2
как static
. Их адреса становятся constexpr
:
constexpr static int ch1 = 5;
constexpr const int* pch1 = &ch1;
constexpr static int ch2 = 5;
constexpr const int* pch2 = &ch2;
Живая демонстрация