Boost logo

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