Я понимаю, что std::atomic<>
- это атомный объект. Но атомный, в какой степени? Насколько я понимаю, операция может быть атомарной. Что именно подразумевается под атомами объекта? Например, если есть два потока, одновременно выполняющих следующий код
a = a + 12;
Тогда вся операция (скажем, add_twelve_to (int)) атомная? Или изменения, внесенные в переменную атомную (so operator =())?