std::atomic_bool 型の変数を宣言する C++11 コードをコンパイルしようとしています。これは、clang を使用した Mac OS 10.8.2 です。
clang --version
Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix
clang は std::atomic_bool について不平を言います:
clang++ -c -stdlib=libc++ -msse4 -std=c++11 -Wno-unused-parameter -I. -o query.o query.cpp
In file included from query.cpp:1:
[...]
./threadutils.h:33:10: error: no type named 'atomic_bool' in namespace 'std'; did you mean 'atomic_long'?
std::atomic_bool work;
ただし、同じコンパイラを使用する XCode プロジェクトでは、同じファイルが正常にコンパイルされます。したがって、手動のコンパイラ呼び出しで何かが欠けていると思います。
-std=c++0x
やなどのいくつかのバリエーションを試しましたが-std=gnu++11
、役に立ちませんでした。