雑にC++20新機能紹介:std::atomic_ref
https://en.cppreference.com/w/cpp/atomic/atomic_ref
C++11で追加されたstd::atomicは、はじめからstd::atomicで宣言された型に対してしかアトミック操作を提供していなかった。言い換えると、既存の型に対する操作は標準ライブラリの範囲でアトミックに行えなかった。
std::atomic_refはその生存期間、参照先がatomicであるものとして扱う。したがって、既存の変数に対するatomic操作を、標準ライブラリの範囲で型宣言を変えずに行うことが出来る。
もちろん、std::atomicとは違い参照先は常にアトミック操作が保証されている訳ではなく、非アトミックな操作が行われることは防げない #cpp
senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.