9

#include <atomic>誰かが include オプションとの違いを明確にしてもらえます #inlucde <cstdatomic>か?

同じ動作なので、何もないと思いますか?

私のdebianシステムにはatomicしかなく、kubuntuシステムにはcstdatomicがあるため、これを求めています。

  • Debian のコンパイラ: バージョン 4.7.2 (Debian 4.7.2-4)

  • Kubuntu のコンパイラ: バージョン 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

4

2 に答える 2

7

<atomic>C++ アトミック操作ライブラリです。

<cstdatomic>C アトミック操作ライブラリの C++ バージョンです。

どちらもegを提供しますstd::atomic_charが、C++バージョンのみがstd::atomic<T>.

原則として、.h拡張子を削除cして名前の先頭に追加することにより、C ヘッダーを C++ で使用する必要stdatomic.hがありcstdatomicます。これにより、C ヘッダーが namespace にインクルードされますstd

stdatomic.hまた、 (cstdatomicしたがって) は C11 であり、atomicC++11 であることに注意してください。これは、コンパイラ サポートの違いを説明している可能性があります。

于 2013-06-19T07:56:39.563 に答える