Сегодня мы поговорим о том, как constexpr
, consteval
, и constinit
позволяют реализовывать компиляцию на этапе выполнения. Компиляция на этапе выполнения позволяет ускорить выполнение кода за счет выполнения расчетов на этапе компиляции, а не в рантайме.
constexpr
делает возможным вычисление значений переменных во время компиляции. Функции и переменные, объявленные с этим ключевым словом, могут быть вычислены на этапе компиляции consteval
усиливает концепцию constexpr
, требуя обязательного вычисления выражений во время компиляции. constinit
используется для инициализации статических и глобальных переменных.
А теперь подробней.