to_string (42) более одного экземпляра соответствует аргументу

Точно так же, как в теме я использую VS2010:

Я имею:

std::string s = std::to_string(42);

и ошибка

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

как это починить?

1

Решение

Visual C ++ 2010 имеет только три перегрузки для std::to_string что взять long long, unsigned long long, а также long double, Стандарт определяет нечто большее, но VC ++ 2010 не поддерживает их. Нет преобразования из int буквальный 42 является предпочтительным, поэтому вызов неоднозначен. Вместо этого вы можете использовать другой тип целочисленного литерала. Например:

std::string s = std::to_string(42LL);
4

Другие решения

Других решений пока нет …