boost :: split оставляет пустые токены в начале и конце строки - это желаемое поведение?
Так как я не смог найти ничего по этому поводу вдокументацияЯ думал, я спрашиваю это здесь. У меня есть следующая программа (C ++ 11):
<code>#include <iostream> #include <boost/algorithm/string.hpp> using namespace std; using namespace boost; int main () { string tmp = " #tag #tag1#tag2 #tag3 ####tag4 "; list<iterator_range<string::iterator> > matches; split( matches, tmp, is_any_of("\t #"), token_compress_on ); for( auto match: matches ) { cout << "'" << match << "'\n"; } } </code>
Выход:
<code>'' 'tag' 'tag1' 'tag2' 'tag3' 'tag4' '' </code>
Я бы подумал, чтоtoken_compress_on
опция удаляет все пустые токены.
Решение, например, использоватьboost::trim_if
, Тем не менее мне было интересно, если это желаемое поведение boost :: split, и почему это происходит?
(g ++ 4.6.3, повышение 1.48)