【发布时间】:2012-12-17 15:37:41
【问题描述】:
我正在尝试编译声明 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,但均无济于事。
【问题讨论】:
-
给我们看一些代码。看起来 clang 3.1 支持原子所以可能是编码问题。