Присвоение объекту atomi c примет любое значение правильного типа.
Поскольку у вас есть std::atomic<size_t>
, тогда любое значение или переменная то есть (или может быть неявно преобразовано в) size_t
может использоваться с правой стороны присвоения.
Что касается проблемы GetVal
, std::atomic
имеет преобразование Оператор , который будет делать правильные вещи, атомарно получить значение и передать его вам для возврата.
Еще одно замечание, касающееся функции GetVal
: это будет только выборка значения, которое будет будь атомом c, return
этого не будет. Таким образом, между выборкой и фактическим return
значение m_atomic_val
может измениться, но будет возвращено старое значение.