内部参照カウントを示すstruct
整数 (たとえば ) を含む があります。int m_ref
C との互換性を維持するために、タイプを に変更することはできません。 にはプレーンな古いデータしか含まれstd::atomic<int>
ていない可能性があります。struct
ただし、コードを調整して、C++11 のアトミック機能を活用したいと考えています。つまり、私は達成する必要があります:
++m_ref;
と
--m_ref;
アトミック操作として。私は現在、これを行うためにアセンブラー (Intel バスロック) を使用していますが、そのコードは移植性が低く、C++ が標準構造を提供するようになったため、削除したいと考えています。
どういうわけか、「ボンネットの下」に行きatomic<T>
、アトミック型を作成するオーバーヘッドなしで何をする必要がありますか: m_ref をアタッチするatomic<T>
とパフォーマンスが低下するのではないかと心配しています。
これは非常に標準的であると思いますが、ここには単純なものがありません。