编译器不知道std :: to_string? (C ++,即使在补丁之后)[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译器不知道std :: to_string? (C ++,即使在补丁之后)[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

停止 !在你将它标记为重复问题之前:问题是我的编译器不知道std :: to_string():我包含了字符串,经过一些研究后我发现它可能是一个MinGW(是的,我在Windows上)bug所以我尝试了这个补丁(http://tehsausage.com/mingw-to-string),但它不会工作:(你知道其他补丁或其他可能导致问题的事情吗?

error: 'to_string' is not a member of 'std'
a = b + std::to_string(12);

我的代码:

#include <iostream>
#include <string>

int main(){
  std::string a = "Hallo Welt.";
  std::string b("Hallo Welt.");
  std::string c(50,'i');

  a = b + c;
  a = b + std::to_string(12);
  return 0;
}
答案

尝试重新创建该功能

#include <string>
#include <sstream>

template < typename T > std::string to_string( const T& n ) {
    std::ostringstream stm ;
    stm << n ;
    return stm.str() ;
}

#include <iostream>
using namespace std;

int main()
{
    cout << to_string(12) << endl;
    cout << to_string(456.2) << endl;
}

不要忘记包含sstream头文件

以上是关于编译器不知道std :: to_string? (C ++,即使在补丁之后)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥数字类型只有一个`to_string()`?

std::to_string - 多个重载函数的实例与参数列表匹配

有没有一种简单的方法可以将前导零添加到通过 std::to_string(int) 创建的字符串中?

to_string 不是 std 的成员,g++ (mingw) 说

to_string 不是 std 的成员,g++ (mingw) 说

C++ to_string 不是 Dev C++ 上 std 的成员