c ++ 11 — упорядочение памяти атомарного приращения C ++

В C ++ 11:
Если я увеличиваю атомарную переменную (оператор ++ на std :: atomic), сохраняется ли новое значение с барьером памяти? Или я должен явно сделать магазин?

3

Решение

Вам не нужно делать явный магазин. Последовательное упорядочение памяти последовательности будет использоваться.

operator++(int) а также operator++() на atomic<integral> типы определены, чтобы иметь эффект fetch_add(1), который в конечном итоге вызывает функцию-член с упорядочением памяти по умолчанию memory_order_seq_cst,

Для спецификации осмотреться Требования к операциям на атомарных типах [atomics.types.operations.req] 29.6.5 / 33

9

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector