Я имею дело с проблемой чтения 64-битного целого числа без знака unsigned long long
из строка. Мой код должен работать как для GCC 4.3, так и для Visual Studio 2010.
Я прочитал этот вопрос и ответил на эту тему: Прочтите 64-битную целочисленную строку из файла и подумайте, что strtoull
будет сделать работу лучше и эффективнее, чем при использовании std :: stringstream
. К сожалению, strtoull
недоступен в Visual Studio stdlib.h
.
Я написал короткую шаблонную функцию:
template
T ToNumber(const std::string& Str)
{
T Number;
std::stringstream S(Str);
S >> Number;
return Number;
}
unsigned long long N = ToNumber("1234567890123456789");
Меня беспокоит эффективность этого решения, поэтому есть ли лучший вариант в этом сценарии?