Атомарные операции стали константными — их можно вызывать на этапе компиляции

01.08.2026

Операции над атомарными типами стали константными. Тот же код с тем же типом теперь годится и для вычислений на этапе компиляции, и для работы во время выполнения.

Какие операции

Создание атомарного значения, чтение, запись, обмен и сравнение с обменом — все они вместе с вариантами порядка памяти.

Зачем это нужно

Атомарные типы нужны там, где значение читается и записывается из разных потоков. На этапе компиляции потоков нет, и кажется, что атомарность не требуется. Но она требуется по другой причине: вычисление на этапе компиляции должно давать тот же результат, что и во время выполнения.

Если константное вычисление использовало бы обычные типы, а рантайм — атомарные, то два результата могли бы разойтись. Общий код на атомарных типах исключает такую возможность.

Второй случай — код, который одинаково используется при расчётах размеров структур и при реальной работе. Такие дублирования константных и обычных версий обычны и склонны расходиться.

Оригинал

make atomic operations const

Упоминаний: 1 · Просмотров: 2