整数値を文字列に挿入しようとして、std::to_string を見つけたときに祈りが答えられたと思っていましたが、何らかの理由で実際に使用しようとすると、Visual Studio があいまいであると文句を言います。これが私の機能の現在の化身です:
string get_time_remaining (int elapsed)
{
string remaining;
string temp_string;
int time_remaining = TimeLimit - elapsed;
int temp_int;
temp_int = int(time_remaining / 3600);
if(temp_int == 0)
remaining = "00 : ";
else
{
temp_string = std::to_string(temp_int); // Here!
remaining = temp_string + " : ";
}
temp_int = time_remaining % 60 + 1;
if(temp_int < 10)
remaining = remaining + "0";
temp_string = std::to_string(temp_int);
remaining = remaining + temp_string;
return remaining;
}
to_string への呼び出し内で temp_int をキャストしようとしました。ご覧のとおり、整数除算の結果をキャストしようとしましたが、何をしても、VS はこれを吐き出します。
d:\my programs\powerplay\powerplay\powerplay.cpp(1285): error C2668: 'std::to_string' : ambiguous call to overloaded function
1> d:\microsoft visual studio 10.0\vc\include\string(688): could be 'std::string std::to_string(long double)'
1> d:\microsoft visual studio 10.0\vc\include\string(680): or 'std::string std::to_string(_ULonglong)'
1> d:\microsoft visual studio 10.0\vc\include\string(672): or 'std::string std::to_string(_Longlong)'
どんな助けでも大歓迎です。