【发布时间】:2012-10-10 03:10:47
【问题描述】:
我正在制作一个小型词汇记忆程序,其中单词会随机向我闪现以获取含义。正如 Bjarne Stroustroup 告诉我们的那样,我想使用标准 C++ 库,但我一开始就遇到了一个看似奇怪的问题。
我想将long 整数更改为std::string 以便能够将其存储在文件中。我也雇用了to_string()。问题是,当我使用 g++(版本 4.7.0,如其 --version 标志中所述)编译它时,它说:
PS C:\Users\Anurag\SkyDrive\College\Programs> g++ -std=c++0x ttd.cpp
ttd.cpp: In function 'int main()':
ttd.cpp:11:2: error: 'to_string' is not a member of 'std'
我给出这个错误的程序是:
#include <string>
int main()
{
std::to_string(0);
return 0;
}
但是,我知道这不可能是因为 msdn 库 clearly says 它存在并且 Stack Overflow 上的 an earlier question(对于 g++ 版本 4.5)说它可以使用 -std=c++0x 标志打开。我做错了什么?
【问题讨论】:
-
适用于我的 GCC 4.4.5(即,给出“模棱两可的过载”错误);也许你的
libstdc++已经过时了? -
It works on Ideone,它使用 GCC 4.5.1。
-
这适用于我的 g++ 4.6.3。您的错误是指第 11 行。您说您的程序“基本上已简化为”您的代码,但是您发布的代码是否也给出了该错误?
-
@VaughnCato - 是的,这就是确切的程序。我应该对其进行编辑以使其更清晰。另外,那个流浪的 int 我在那里做什么?
-
这对我也不起作用,即使我使用的是 GCC 5.3.1。然而,修复它的方法只是使用后来的 C++ 标准——即使用标志
-std=c++11或更高版本进行编译。
标签: c++ c++11 g++ mingw tostring