Есть ли способ в C ++ или Boost для разбора числа (unsigned long long
если возможно) который работает непосредственно на wstring
итераторы? Это должно быть так быстро, как std::stoull
,
Boost.Spirit имеет API на основе итераторов. Из того, что я прочитал, это должно быть даже быстрее, чем стандартные функции преобразования строк.
#include <iostream>
#include <string>
#include <boost/spirit/include/qi.hpp>
int main()
{
namespace qi = boost::spirit::qi;
std::wstring s(L"4398046511104");
unsigned long long n = 0;
qi::parse( begin(s), end(s), qi::ulong_long, n );
std::cout << n << std::endl;
}
Других решений пока нет …