可能重复: 关闭eclipse错误(不是真正的错误)
我面临着这个恼人的问题: Eclipse拒绝承认std::to_string函数,但是我的程序编译时没有错误。我遗漏了什么?
根据优先选择,std::to_string函数是在<string>中定义的,所以我将它显式地包含在被定罪的.cpp文件中。我还尝试了这、这和这解决方案,但没有成功。
还有其他建议吗?
编辑:
我在Linux下使用g++ 4.7.2。
发布于 2013-01-17 15:59:45
在我的例子中,eclipse相信__cplusplus是定义为199711L的,但是我非常肯定这应该被定义为类似于201103L的东西,因为libstdc++ v3使用
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else在大多数新的C++11头中,比如<future>和basic_string.h ( std::to_string的定义是这样的),这是由<string>包含的。尽管在用g++ (Built by MinGW-builds project) 4.8.0 20121225 (experimental)编译时,我绝对没有错误。这种奇怪的行为显然混淆了eclipse,使其无法正确地表述包含的文件。
在包含__cplusplus文件之前,在201103L上将C++11定义为C++11应该会修复假eclipse语法错误,比如Symbol 'shared_ptr' could not be resolved。
#undef __cplusplus
#define __cplusplus 201900L在重新定义之后,您将希望右键单击项目Index -> Rebuild & Freshen all files,或者更好地一起重新启动eclipse。
https://stackoverflow.com/questions/14381137
复制相似问题