|
Boost Users : |
Subject: [Boost-users] [String algo] Breaking change between 1.41 and 1.44 in split
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2010-10-13 11:00:53
Hi,
I noticed a breaking change in the split function when the input
string is empty. Consider the following example:
#include <string>
#include <vector>
#include <iostream>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/classification.hpp>
int main()
{
std::vector<std::string> result;
std::string empty_string;
boost::algorithm::split( result,
empty_string,boost::algorithm::is_any_of( "\t"
),boost::algorithm::token_compress_off);
std::cout << "result size: " << result.size() << std::endl;
return 0;
}
With boost 1.41 I get:
result_size: 1
With 1.44 I get:
result_size: 0
Meaning that splitting an empty string now has a new meaning. All I
found to this subject was that 1 seems to be the correct answer
(http://lists.boost.org/Archives/boost/2005/07/90266.php).
Furthermore, there has been, according to the release notes, no change
to string algo since the 1.41.
This brings me to the question, before I start updating my code, is
this change a design decision or an accident?
Thanks,
Christophe
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net