Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpCxCi 408 of 696 menu
◀ ▶

Инициализация при компиляции в C++

Инициализация при компиляции задается маркером constinit для объекта статического времени жизни: начальное значение вычисляют при сборке, но сам объект не обязан быть неизменяемым.

Такую переменную можно менять позже в программе, в отличие от const. Запишем constexpr функцию и статическое целое с constinit:

#include <iostream> constexpr int scale(int x) { return x * 10; } constinit int seed = scale(4); int main() { std::cout << seed << "\n"; seed = 99; std::cout << seed << "\n"; return 0; }

Объявите constexpr int offset, прибавляющую 100 к аргументу. Задайте constinit int base результатом для 5. Выведите base, затем запишите в нее 0 и выведите снова.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить