본문 바로가기

C/C++

C++ int to string 함수 to_string() error C2668 에러

반응형

int i = 5;
std::string s = std::to_string(i);


int를 string으로 변환해주는 함수인 to_string 함수를 사용하려고 보니


error C2668: 'std::to_string' : ambiguous call to overloaded function


라는 에러를 뱉어 무척이나 당황스러웠습니다.


그래서 또 google 선생님께 질문을 했더니

이런 답변을 발견! 부족한 영어로 해석해보니 VC11이전버전의 버그라고 하며 VC11부터는 해결되었다고 합니다.

그렇다면 VC11이하에서는 어떤 방법이 있을까 찾아보았더니 아주 간단한 방법이 존재했다.


-------------------------------------------------------------------------------------------

#include <sstream>

#include <iostream>


string intToString(int n);

void main()

{

std::string s = intToString(1234);

std::cout << s;

}

string intToString(int n)

{

stringstream s;

s << n;

return s.str()

}

-------------------------------------------------------------------------------------------

이런 간단한 함수를 만들어서 변환을 할 수가 있다. 정수를 stringstream으로 보내고 stringstream의 str()함수를 이용하여  string으로 변환하는 아주 간단한 방법이 있었다.

반응형