Я только что прочитал ответ наБудет ли const и constexpr в конечном итоге быть одним и тем же?
const vs constexpr on variables
и смотрю этот Google Tech Talk about C++11/14 features, в котором говорится, что, ну, constexpr не может быть необходимым в будущем, когда речь идет о функциях, так как компиляторы будут развиваться чтобы понять это самостоятельно. Наконец, я теперь, когда компиляторы Java и JVM усердно работают над тем, что классы (или любая переменная может быть) неизменны после построения - без явного упоминания об этом - и на основе этого факта выполняются всевозможные нечестивые оптимизации.
Итак, вот вопрос: является ли судьба const и constexpr в конечном итоге одной и той же? То есть, несмотря на то, что компилятору не гарантируется инициализация времени выполнения и т. Д., Не будет ли это в конечном итоге делать это по возможности (в основном)? И когда это произойдет, не будет ли одно из ключевых слов излишним? (Так же, как встроенный, возможно)?
Я, например, я использую constexpr много, чтобы получить чистую и твердую ошибку, если компилятор не может делать то, что я хочу, чтобы это сделать во время компиляции. Я бы предпочел узнать, когда есть проблема, а не заставить ее тихо «фиксироваться». – tux3
не так думают - вполне допустимо принимать адрес переменной 'const', но не' constexpr' –
@RedAlert, без проблем может справиться 'constexpr int i = 10; cout << & i << endl; '. Переменная имеет адрес. Скомпилирован с g ++/clang ++ -pedantic – vsoftco