
On Thu, Nov 15, 2012 at 9:32 PM, Steven Watanabe <watanabesj@gmail.com> wrote:
Why? I don't see that it makes any difference whatsoever.
It's just an implementation detail, indeed.
The header will be in boost/algorithm/string_ref.hpp, but I welcome discussion about where it should live. Ideally, I think it should be just "boost/string_ref.hpp".
I'd go with the latter. I'm missing explicit operator bool() const { return !empty(); }
-1. A string is not a boolean value
Neither is an iostream. Or an int or a pointer. What's your point?
nor is an empty string a special invalid value. If you want to know whether a string is empty, you should call s.empty().
That's a bit hard when you've got code like while (string_ref s = f()) or if (string_ref s = f()) Empty/non-empty is a clear and frequently tested distinction and one of the two happens to be the default value. -- Olaf