boost :: split deja tokens vacíos al principio y al final de la cadena: ¿es este el comportamiento deseado?
Como no pude encontrar nada sobre esto en eldocumentación, Pensé que lo pido aquí. Tengo el siguiente programa (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>
La salida es:
<code>'' 'tag' 'tag1' 'tag2' 'tag3' 'tag4' '' </code>
Habría pensado que eltoken_compress_on
La opción elimina todos los tokens vacíos. La solución es, por ejemplo, utilizar.boost::trim_if
. Sin embargo, me preguntaba si este es el comportamiento deseado de boost :: split, ¿y por qué sucede esto?
(g ++ 4.6.3, impulso 1.48)