constexpr

constexpr спецификатор с появился по-видимому не спроста. Дело в том, что а отличии от спецификатора const, constexpr гарантирует, что переменная уже инициализирована на стадии  сборки, то есть до запуска программы переменной задано значение.

Далее отличие constexpr в том, что он может применяться к конструктору класса. Тут смысл в том, чтобы опять же гарантированно инициализировать переменные класса также ещё на стадии сборки. Таким образом класс по аналогии с переменной будет инициализирован на стадии сборки до запуска программы.