Существует два уровня этой проблемы.
Первый простой и технический - std::atomic
не может быть сконструирован или назначен, как указано в другом ответе.
Второй - это обоснование за этим - замена std::atomic
s сама по себе не будет atomi c. И поскольку std::atomic
s используются в многопоточных средах, добавление swap
привело бы к широкому спектру ошибок из-за возможных недоразумений (поскольку существует swap
для std::atomic
, то это atomi c сам по себе).
В общем - если вам не нужна atomi c swap
, это довольно легко сделать, используя упомянутые exchange
s.