Скомпилируйте добавление const
после int
.
constexpr int const & k = r ;
// ...........^^^^^
Проблема в том, что constepxr
подразумевает const
, поэтому при определении r
constexpr int r =100;
вы определяете constexpr
как значение int const
(также следует учитывать, что const
применяется к типу слева; справа только, если слева нет типа; поэтому const int
и int const
- это одно и то же).
Но ваша k
constexpr int & k = r ;
не является const
(подразумевается constexpr
) ссылкой на int const
, но толькоconst
ссылка на int
.
И вы не можете инициализировать ссылку на переменную int
значением int const
.
Вы можете устранить ошибку,делая k
a const
ссылку на int const
.