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