Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Eclipse认为clang不会';不支持std::原子 我有一个Eclipse C++项目,它使用了一些C++ 11的特性。它使用cmake进行构建,因此它在eclipse中作为一个包含现有Make文件的项目进行设置_C++_Eclipse_C++11_Clang_Eclipse Cdt - Fatal编程技术网

为什么Eclipse认为clang不会';不支持std::原子 我有一个Eclipse C++项目,它使用了一些C++ 11的特性。它使用cmake进行构建,因此它在eclipse中作为一个包含现有Make文件的项目进行设置

为什么Eclipse认为clang不会';不支持std::原子 我有一个Eclipse C++项目,它使用了一些C++ 11的特性。它使用cmake进行构建,因此它在eclipse中作为一个包含现有Make文件的项目进行设置,c++,eclipse,c++11,clang,eclipse-cdt,C++,Eclipse,C++11,Clang,Eclipse Cdt,它可以在eclipse中或从命令行使用makefiles进行良好的构建。但是我在atomic\u bool中遇到语法错误,说符号无法解析。我在“c/c++常规->预处理器包含模式->提供程序->CDT GCC内置编译器设置”下添加了-std=c++11,并且我将eclipse中的工具链设置为MacOSX GCC 注意:其他c++11东西,如thread或shared\ptr不会给出任何语法错误 错误来自标题,其中有预处理器if语句 #if !__has_feature(cxx_atomic) #

它可以在eclipse中或从命令行使用makefiles进行良好的构建。但是我在
atomic\u bool
中遇到语法错误,说符号无法解析。我在“c/c++常规->预处理器包含模式->提供程序->CDT GCC内置编译器设置”下添加了
-std=c++11
,并且我将eclipse中的工具链设置为MacOSX GCC

注意:其他c++11东西,如
thread
shared\ptr
不会给出任何语法错误

错误来自
标题,其中有预处理器
if
语句

#if !__has_feature(cxx_atomic)
#error <atomic> is not implemented
#else
...
为什么在Eclipse中,
\u has\u feature(cxx\u atomic)
的计算结果为false,但如果我检查编译器本身,则不为false?

尝试启用“构建输出解析器”。

我也遇到了这个问题,其他C++11功能也受支持,但atomic不受支持。

可能与@Praetorian重复这不是重复。
-std=c++0x
\uuuugxx\ucxx0x\uuuxx\uuuxx
是早期支持c++11时的黑客攻击。报告提到了我遵循的过程。在我的例子中,除了atomic之外,我尝试过的所有C++11都可以正常工作。所以这是一个不同的问题。@Sean Lynch-我对你的问题没有答案。。。但为什么人们更喜欢叮当声而不是GCC呢?我很好奇。提前谢谢你@雾天我其实不喜欢。但我现在仍然坚持使用OSX,我觉得当你在他们的平台上使用他们希望你使用的东西时,一切都会更加顺利。他们肯定不关心gcc,我在OS X上使用gcc时遇到了一些微妙的麻烦。这不是clang特有的,我可以用Eclipse4.4/CDT8.4/GCC4.9.1复制这一点。一点运气都没有。
$ echo '__has_feature(cxx_atomic)' | g++ -x c++ -std=c++11 -E -
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 188 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2
1