C++20 представил constinit
, чтобы избежать фиаско статического порядка инициализации.
Может constinit
отказаться от использования отличной идиомы счетчика (например, для инициализации std::cout
)?
C++20 представил constinit
, чтобы избежать фиаско статического порядка инициализации.
Может constinit
отказаться от использования отличной идиомы счетчика (например, для инициализации std::cout
)?
Может ли C++20
constinit
отказаться от изящной идиомы счетчика?
No.
Фиаско порядка статической инициализации — это только проблема с фазой динамической инициализации статических объектов. Конечно, если вы не выполняете динамическую инициализацию, то проблем нет, и constinit
обеспечивает это. Но это ничего не решает, когда вам нужна динамическая инициализация.
constinit
не останавливает фиаско статического порядка инициализации. Обычно говорят, что переменная должна быть постоянной или инициализированной нулем. то естьconsinit int foo;
будет ошибкой, аconstinit int foo = 42;
- нет. - person NathanOliver   schedule 17.03.2020