相关疑难解决方法(0)

Gnu C++宏__cplusplus标准符合?

Gnu C++编译器似乎定义__cplusplus1

#include <iostream> 
int main() {
  std::cout << __cplusplus << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

1在标准c ++模式下以gcc 打印,在C++ 0x模式下打印,使用gcc 4.3.4和gcc 4.7.0.

C++ 11 FDIS在"16.8预定义宏名[cpp.predefined]"中

编译C++转换单元时,名称__cplusplus定义为值201103L.(脚注:本标准的未来版本将以更大的值替换此宏的值.不合格的编译器应使用最多五位小数的值.)

旧的std C++ 03也有类似的规则.

GCC是否将此设置为1,因为它"不符合"

通过阅读该列表,我认为__cplusplus如果我有一个支持C++ 11的编译器,我可以使用以便携方式检查.但是使用g ++这似乎不起作用.我知道...EXPERIMENTAL...宏,但很好奇为什么g ++__cplusplus这种方式定义.

我最初的问题是在不同的空指针变体之间切换.像这样的东西:

#if __cplusplus > 201100L
#  define MYNULL nullptr
#else
#  define MYNULL NULL
#endif
Run Code Online (Sandbox Code Playgroud)

是否有一种简单且合理的便携式方式来实现这样的开关?

c++ gcc standards-compliance c++-standard-library c++11

32
推荐指数
1
解决办法
2万
查看次数

C++ 11完全支持Eclipse

我试图找到一种方法来获得Eclipse上的完整C++ 11支持.

在Eclipse朱诺我有很多的新功能__GXX_EXPERIMENTAL_CXX0X__,但我没有找到支持std::threads,std::mutex等等.

如何完成所有C++ 11功能?

编辑:解决方案

去吧Project -> Properties -> C/C++ General -> Path and Symbols -> Tab [Symbols].添加符号:__ cplusplus,其值为201103L

c++ eclipse c++11

32
推荐指数
1
解决办法
2万
查看次数

关闭eclipse错误(这不是真正的错误)

可能重复:
禁用Eclipse的错误发现.(Codan误报)

到目前为止,使用GCC 4.8/Clang 3.3 C++支持Eclipse正在进行语法检查(在功能支持方面),Eclipse将许多事情标记为实际上有效代码的错误(模板别名恰好是我的主要问题,但是还有其他问题).

当我编译(或尝试无论如何,遇到一些问题,请参阅此处了解更多)无论编译器正在做什么工作都能完成它的工作,并且它的错误会被传播,但是它所说的代码仍然可以强调(红色分别是错误和警告的金蜘蛛,这使得查看正在发生的事情变得更加困难.

有没有办法摆脱这些错误/警告?

更好的方法是只有在编译尝试之后才能摆脱警告,并且只要代码的相关部分没有改变,但仍然保持它们一般启用.

(实际上最好的是Eclipse的插件,它支持所有,或至少比Juno本身更多的C++ 11,但我似乎无法找到它)

c++ eclipse-cdt c++11

22
推荐指数
2
解决办法
2万
查看次数

Eclipse:函数'to_string'无法解析

可能重复:
关闭eclipse错误(这不是真正的错误)

我正面临这个恼人的问题:Eclipse拒绝识别该std::to_string函数,但我的程序编译没有错误.我错过了什么?

根据cppreference,std::to_string函数被定义<string>,因此我将其明确地包含在被控制的.cpp文件中.我也试过这个,这个这个解决方案,没有运气.

还有其他建议吗?

编辑:

我在Linux下使用g ++ 4.7.2.

c++ eclipse eclipse-cdt c++11

13
推荐指数
2
解决办法
2万
查看次数

如何将nullptr引入CDT代码分析器?

我在Eclipse CDT中遇到了代码分析器错误.它与C++ 11功能不兼容.__GXX_EXPERIMENTAL_CXX0X__已定义,并设置了编译器标志.库编译并正常工作,虽然我找不到告诉Eclipse这nullptr是一个关键字的方法!请不要突出显示它.

愚蠢的Eclipse :)

我正在使用当前LTS Ubuntu(12.04)的默认版本.这是Indigo(3.7.2).

c++ eclipse-cdt c++11

5
推荐指数
1
解决办法
504
查看次数