Я читаю справочное руководство cpp по std :: atomic (https://en.cppreference.com/w/cpp/atomic/atomic), и я не понимаю, какие именно операции выполняются атомарно.
Основные операции, с которыми у меня возникают проблемы:
operator =, operator + и operator + =
Я знаю, что эти операции определены для шаблона. Я просто не уверен, являются ли они атомарными и когда. Я был бы признателен за помощь в понимании, когда операция с такой переменной является атомарной, а не атомарной.
Изменить:
Я прочитал вопрос, упомянутый здесь: Что такое std :: atomic? а я до сих пор в замешательстве. Например, предположим, что a - атомарное целое число. Является ли a + = 100 эквивалентом a.fetch_add (100)?
В той же строке вопросов a.load (100) эквивалентен a = 100?