Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.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
C++ Eclipse:function';到字符串';无法解决_C++_Eclipse_C++11_Eclipse Cdt - Fatal编程技术网

C++ Eclipse:function';到字符串';无法解决

C++ Eclipse:function';到字符串';无法解决,c++,eclipse,c++11,eclipse-cdt,C++,Eclipse,C++11,Eclipse Cdt,可能重复: 我面临着这个恼人的问题:Eclipse拒绝识别std::to_string函数,但我的程序编译时没有错误。我错过了什么 根据std::to_string函数是在中定义的,因此我将其明确地包含在incinciminated.cpp文件中。我也试过了,但没有找到解决办法 还有其他建议吗 编辑: 我正在Linux下使用g++4.7.2。更新:我已经很久没有发布原始答案了,它已经过时了。我今天仔细检查了一下(2014年3月15日):在Eclipse Kepler(构建id 20130614

可能重复:

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

根据
std::to_string
函数是在
中定义的,因此我将其明确地包含在incinciminated
.cpp
文件中。我也试过了,但没有找到解决办法

还有其他建议吗

编辑:


我正在Linux下使用g++4.7.2。

更新:我已经很久没有发布原始答案了,它已经过时了。我今天仔细检查了一下(2014年3月15日):在Eclipse Kepler(构建id 20130614-0229)中

    <> >项目添加>属性> C/C++ +构建>设置,然后在工具设置选项卡GCC C++编译器>杂项<代码> -STD= C++ 11 标志,

  • 然后在“发现”选项卡上的“窗口>首选项>C/C++>构建>设置”下,选择“CDT GCC内置编译器设置”,并将
    -std=C++11
    标志添加到命令以获取编译器规格。在我的机器上,更改后的外观如下:

    ${COMMAND}-E-p-v-dD-std=c++11“${INPUTS}”

  • 清理并重建项目和索引(项目>C/C++索引>重建),因为Eclipse倾向于缓存错误消息并显示它们,即使更改设置后错误消息消失了

这在我的机器上肯定有效。如果在你的机器上不起作用,那么你可能想试一试:尽管我既不确定这种方法的正确性,也没有必要在我的机器上这样做。截至2014年3月7日,用户表示它帮助了他们,而上述方法没有


原来的帖子,现在已经过时了:

似乎你遇到了Codan的常见问题,请参见


代码的编译方式还不是100%清楚。在日食中?或者从命令行,正确设置标志?以防万一:

您正在使用一个C++11函数。您是否将
-std=c++0x
-std=c++11
标志传递给编译器(假设为gcc)

您可能还必须将
\uuuuugxx\ucx0x\uuuux0x\uuuu>添加到您的定义中(同样,假设为gcc)并重新启动Eclipse


在我的例子中,eclipse相信
\uuu cplusplus
被定义为
199711L
,但我很确定这应该定义为类似
201103L
的东西,因为
libstdc++v3
使用

#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else

重新定义后,您需要右键单击项目
索引->重建并刷新所有文件
,或者最好一起重新启动eclipse。

对不起,我没有提到我在Linux下使用的是g++4.7.2。是的,我在编译器的命令行中有
-std=c++0x
标志,我还尝试了
-std=c++11
并启用了
\uuuugxx\ucx0x\uuuuxx
,但没有成功。我已经看过你的答案了,我怀疑我最终会手动禁用一些最烦人的错误。谢谢你的回答,+1谢谢你的尝试。@Ali:问题是项目编译正常,所以你所有关于编译设置的建议都没有用。他需要日食升级。@BenVoigt是的,这也是我的第一个猜测。然而,目前还不清楚代码是如何编译的。在日食中?或者从命令行,正确设置标志?或所以我试了一下,告诉了他所有可能导致错误的事情。但我同意,Eclipse升级和禁用Codan可能会解决他的问题。@Avio请告诉我禁用Codan是否真的有帮助。@Avio是的,一般来说,你应该这样做,但在Eclipse中,它是Codan中的一个bug,我认为你不会找到更好的解决方法。我报告了这个bug,正如您所看到的,什么都没有发生:(是的,这是“主”问题:但我正在寻找一个特定的解决方法(例如,在某处包含一个头文件),我不希望禁用Eclipse错误检查。我尝试了您的
\uuuCPlusplus
解决方案,但没有成功。但是,看看
basic_ustring.h
,我发现
\ifdef
包含了所有
to_ustring
定义(
\u35; if(已定义(\uugxx\ucx0x\ux)和已定义(\u GLIBCXX\u使用
)显示为灰色。但是,如果我尝试在代码中复制/粘贴相同的
\ifdef
,它不会显示为灰色。我已尝试(再次)定义
\uuuugxx\u实验性的CXX0X\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu它所需要的er值(不仅是
\uuuuuugxx\ucx0x\uuuuxx\uuuux>,即使在当前文件中也没有灰显)然后重新构建索引,刷新文件并重新启动Eclipse。+ 1,这很好。我甚至添加了GXXXTEXTRONTALL OXCXX0X,它在哪里帮助,它不再做它,这个解决方案就是我必须使用的。STD::ToSo字符串不起作用。使用Eclipse开普勒与明文64 /GCC 4.82.Eclipse开普勒,C++通用->预处理器包括路径、宏等。> ----- GNU C++ > CDT用户设置实体添加201103L@jean你的答案在Luna上有效:
C++General
->
预处理器包括路径
->在左窗格中的
条目下突出显示
GNU C++
,然后在右窗格中突出显示
CDT用户设置
,然后单击
添加到右侧。在生成的弹出窗口中,选择
#预处理器宏
,对于
名称
使用cplusplus,对于
使用201103L。一旦完成装配
#undef __cplusplus
#define __cplusplus 201900L