Subject: Re: [boost] Result of boost::split against empty string changed in post-1.45 release
From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2012-06-11 23:48:54
On Jun 11, 2012, at 1:26 PM, Mateusz Loskot wrote:
> On 11 June 2012 19:09, Pavol Droba <droba_at_[hidden]> wrote:
>> On Mon, 11 Jun 2012 16:58:40 +0200, Mateusz Loskot <mateusz_at_[hidden]> wrote:
>>> I have a simple program runs boost::split against empty string.
>>> I'm testing with Boost 1.45 and later versions like 1.46 or 1.49.
>>> As stated in the // comment below, there is difference in behaviour
>>> depending on the Boost version:
>>> // https://gist.github.com/2910461
>>> #include <cassert>
>>> #include <string>
>>> #include <vector>
>>> #include <boost/algorithm/string/split.hpp>
>>> #include <boost/algorithm/string/classification.hpp>
>>> int main(int argc, wchar_t* argv)
>>> std::wstring s;
>>> std::vector<std::wstring> a;
>>> boost::split(a, s, boost::is_any_of(L", "), boost::token_compress_on);
>>> // Boost 1.45: true
>>> // Boost 1.46+: false
>>> // Assertion failed: s.empty() == a.empty(), file
>>> boost_split_empty_string.cpp, line 16
>>> assert(s.empty() == a.empty());
>>> return 0;
>>> IMHO, the behaviour exposed in newer versions is a bug.
>>> Could anyone shed light on what happened in post-1.46?
>> Please search the boos archives. There was an extensive discussion about
>> this particular issue.
> You are right, there are some discussions about this behavior,
> For example
> and others. Thanks for pointing that.
> I have to admit that to me the current behavior is not intuitive.
> Also, I have failed to find any example of it in the docs.
If you would be willing to write up a paragraph making this clear, I will put it into the docs.
Marshall Clow Idio Software <mailto:mclow.lists_at_[hidden]>
A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait).
-- Yu Suzuki
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk