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)

Ответы на вопрос(3)

Ваш ответ на вопрос