是否存在可用于迭代器的数字解析函数?

时间:2017-04-08 22:07:51

标签: c++ boost string-parsing iterator-range

C ++或Boost中有没有办法解析一个直接在unsigned long long迭代器上工作的数字(wstring,如果可能的话)?它应该与std::stoull一样快。

1 个答案:

答案 0 :(得分:1)

Boost.Spirit有一个iterator-based 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;
}

Live demo on Coliru.