28 Eylül 2016 Çarşamba

tokenizer Kendi Ayraç Sınıfım

Giriş
char_delimeters_separator (depricated),
char_separator
sınıfları ayraç olarak karakterleri kullanır.

Eğer bir metni ayraç olarak kullanmak istersek şöyle yaparız.
struct my_tokenizer_func
{
  template<typename It>
  bool operator()(It& next, It end, std::string & tok)
  {
    if (next == end)
      return false;
    char const * del = ">=";
    auto pos = std::search(next, end, del, del + 2);
    tok.assign(next, pos);
    next = pos;
    if (next != end)
      std::advance(next, 2);
    return true;
  }

  void reset() {}
};
Kullanmak için şöyle yaparız.
std::string s = "...";;
boost::tokenizer<my_tokenizer_func> tok (s);

for (auto t : tok)
  std::cout << t << '\n';

Hiç yorum yok:

Yorum Gönder