簡體   English   中英

clang不知道std :: atomic_bool,但是XCode確實如此

[英]clang doesn't know std::atomic_bool, but XCode does

我正在嘗試編譯聲明類型為std :: atomic_bool的變量的C ++ 11代碼。 這是在Mac OS 10.8.2上使用clang:

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 ,但無濟於事。

我想到了。 不幸的是,我在我的問題中設置了一個錯誤的標志:它在XCode中也不起作用,我在那里導入了不同版本的源文件。

問題是C ++ 11定義了“與指定的atomic<bool>對應的命名類型atomic_bool ”,但是clang不支持它

將類型從atomic_bool重命名為atomic<bool>修復它。

我發現了同樣的問題。 在我的情況下,我通過包含原子來解決它:

#include <atomic>
static std::atomic_bool varname;

在此之后,我可以在Linux(Ubuntu)上使用std = c ++ 11調用g ++以及在XCode上編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM