8

ドキュメントによると、アトミックは、整数型、列挙型、またはポインター型の T をサポートしています。Intel TBB は公式に floats/doubles をサポートしていますか? ここと Raf Schietekat によるいくつかのパッチを見ましたが、最新の 4.0 リリースに組み込まれていない可能性があります。私が読んだパッチから、私が気づいた唯一の大きな違いは、整数型から float/double への reinterpret_cast の追加でした。誰かがこれを明確にすることができれば、私はそれを感謝します。ありがとう!

4

3 に答える 3

1

C ++ 11は、アトミックフロートとダブルをサポートします。ただし、のような算術関数std::atomic_fetch_addは整数型でのみサポートされます。

std::atomicC ++ 11コンパイラを使用している場合は、文書化されていない動作に依存する必要がないように、に切り替えることをお勧めします。

于 2012-12-28T17:23:49.617 に答える
1

64 ビットおよび 32 ビットの原子整数の上に構築された浮動小数点数のサポートを簡単に追加できます。アトミック ロード/ストア/交換は、reinterpret_cast を使用して直接ラッパーとして実装できます。アトミック算術演算は、アトミック比較交換を使用したループを使用して実装できます。

于 2012-10-05T12:45:22.183 に答える