2 Ocak 2017 Pazartesi

spirit multi_pass Sınıfı

Giriş
Şu satırı dahil ederiz.
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/support_multi_pass.hpp>
Tanımlama
Şöyle yaparız.
using namespace boost::spirit;
typedef multi_pass<
    std::string::const_iterator,
    iterator_policies::default_policy<
        iterator_policies::first_owner, iterator_policies::no_check,
        iterator_policies::buffering_input_iterator,
        iterator_policies::split_std_deque>>
string_mp_iterator;
Constructor - begin iterator + end iterator
Şöyle yaparız.
std::string input = "234";
string_mp_iterator input_begin(input.begin()),
                       input_end(input.end());
qi::rule<string_mp_iterator, boost::variant<int, double>()> r = 
  &qi::lit('1') >> qi::int_ | qi::double_;
qi::parse(input_begin, input_end, r);

Hiç yorum yok:

Yorum Gönder