Атомарные операции стали константными — их можно вызывать на этапе компиляции
01.08.2026Операции над атомарными типами стали константными. Тот же код с тем же типом теперь годится и для вычислений на этапе компиляции, и для работы во время выполнения.
Какие операции
Создание атомарного значения, чтение, запись, обмен и сравнение с обменом — все они вместе с вариантами порядка памяти.
Зачем это нужно
Атомарные типы нужны там, где значение читается и записывается из разных потоков. На этапе компиляции потоков нет, и кажется, что атомарность не требуется. Но она требуется по другой причине: вычисление на этапе компиляции должно давать тот же результат, что и во время выполнения.
Если константное вычисление использовало бы обычные типы, а рантайм — атомарные, то два результата могли бы разойтись. Общий код на атомарных типах исключает такую возможность.
Второй случай — код, который одинаково используется при расчётах размеров структур и при реальной работе. Такие дублирования константных и обычных версий обычны и склонны расходиться.
Оригинал
make atomic operations const
Упоминаний: 1 · Просмотров: 2