Boost logo

Boost :

Subject: Re: [boost] Heads up - string_ref landing
From: Rob Stewart (robertstewart_at_[hidden])
Date: 2012-12-14 07:54:36


On Dec 13, 2012, at 12:05 PM, Gottlob Frege <gottlobfrege_at_[hidden]> wrote:

> On Thu, Dec 13, 2012 at 5:20 AM, Rob Stewart <robertstewart_at_[hidden]>wrote:
>
>>>> It is the logical interpretation. It indicates whether the string is non-empty. I don't see any other generally useful interpretation, do you?
>>>
>>> Qt's QString has both empty() and isNull() and they are not always the same. Basically empty() is a zero-byte string, but null is a never-been-set-or-allocated string.
>> [snip]
>>
>>> Somewhat like optional<string>.
>>
>> That's how I'd spell it.
>
> Me too maybe. But either way, there is another 'generally useful
> interpretation'. And fairly well known.
>
> For string_ref, it could mean the difference between these 2 string_refs, assuming a ptr+size implementation:
>
> { ptr != 0, size == 0 } and { ptr == 0, size == hopefully_zero }

The unset interpretation of "null" is not uncommon, but I don't agree with it's being generally useful. It is useful in some circumstances, but "is empty" is much more broadly useful, hence my statement.

___
Rob


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk