#include #include #include int main() { std::ostringstream tmp; // does not work tmp << "McStructuredLoanEngine::calculate() trace information\n"; // works // tmp << "McStructuredLoanEngine::calculate() trace " // "information\nMcStructuredLoanEngine::calculate() trace " // "information\n"; // works // tmp << "A shorter test string\n"; boost::char_separator sep("\n", "", boost::drop_empty_tokens); boost::tokenizer > t(tmp.str(), sep); for (boost::tokenizer >::const_iterator it = t.begin(); it != t.end(); ++it) { std::string s = *it; std::cout << "TokenStartsHere:" << s << ":TokenEndsHere / length of string is " << it->length() << std::endl; } }