Невозможно инициализировать const, кроме случаев, когда он определен. Вы должны найти способ узнать его значение там, где оно определено. Если значение x
трудно определить, рассмотрите возможность использования результата, например
const int x = calc_x();
или закрытие типа
const int x = []() { /* code to calculate x's value */ }();
const
ness является частью типа объекта, и тип объекта не может быть изменен ни при каких обстоятельствах, поэтому либо x
равен const
, и вы не можете инициализировать его позже, либо x
нет const
на всех.
Можно создать оболочку class
, которая будет имитировать это, но в лучшем случае вы получите ошибку во время выполнения.
Обратите внимание, что может показаться, что существует решение в форме const_cast
, но это предполагает, что рассматриваемый объект на самом деле не const
. В случае const int x
нет никакого способа юридически изменить его значение после его инициализации.