Clang 3.2在std::atomic上失败——libc++问题

clang 3.2 fails on std::atomic -- a libc++ issue?

本文关键字:失败 libc++ 问题 atomic std Clang      更新时间:2023-10-16

我试着编译简单的代码

#include <atomic>
int bar = 0;
void foo(std::atomic<int>&flag)
{ bar = flag; }

与clang++ 3.2(下载为LLVM 3.2从llvm.org;在MAC操作系统上。X 10.8.3失败,报错

/>叮当声+ +化= c + + 11 -stdlib = libc + + o3 3月=原生- c test.cc

from test.cc:1:

/usr/include/c++/v1/atomic:576:17:错误:原子操作的第一个参数必须是指向非const _Atomic类型的指针('const _Atomic(int) *' invalid)

{return __c11_atomic_load(&__a_, __m);}
        ^                 ~~~~~

/usr/include/c++/v1/atomic:580:53: note:在成员函数的实例化中"std:: _ 1:: _atomic_base::负载的要求在这里

operator _Tp() const _NOEXCEPT          {return load();}
                                                ^

测试。Cc:5:9:注意:在实例化成员函数'std::_1::_atomic_base::operator int' requested here

bar = done;

当我使用/usr/bin/clang++代替(这是OS或Xcode自带的)时,它编译得很好。在这两种情况下,libc++都是在/usr/lib/c++/v1。

我错过了什么?是否有另一个libc++与llvm 3.2,但我错过了?(我在clang3.2树中找不到任何东西)

Xcode现在捆绑libc++在Xcode。应用程序目录。你可以通过点击Xcode来检查这个目录。