62Tokenizer::split (std::string
const& str,
char delim,
bool keep_empty)
65 std::size_t new_tok = 0;
66 std::size_t cur_pos = 0;
67 for (; cur_pos < str.size(); ++cur_pos)
68 if (str[cur_pos] == delim)
70 std::string token = str.substr(new_tok, cur_pos - new_tok);
71 if (keep_empty || !token.empty())
72 this->push_back(token);
73 new_tok = cur_pos + 1;
76 if (keep_empty || new_tok < str.size())
77 this->push_back(str.substr(new_tok));
108Tokenizer::concat (std::size_t pos, std::size_t num)
const
110 std::stringstream ss;
111 std::size_t max = (num == 0
113 : std::min(pos + num, this->size()));
115 for (std::size_t i = pos; i < max; ++i)
117 ss << (i == pos ?
"" :
" ");