Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2019-12-04 18:30:23


On 2019-12-04 18:24, Alexander Grund via Boost wrote:
>
>> I would hope to see close to the same semantics as std::array<T,0>,
>> which I believe allows data() to return nullptr.
>
> I don't think so:
>
> "There is a special case for a zero-length array (|N == 0|). In that
> case, array.begin() == array.end(), which is some unique value. The
> effect of calling front() or back() on a zero-sized array is undefined."
> from https://en.cppreference.com/w/cpp/container/array
>
> IMO this excludes nullptr as that won't be unique

I don't think iterators from different instances of a container are
comparable. IOW, "unique" means distinct from any possible values of
valid iterators obtained from this particular container instance.

That might not apply to pointers, though. I don't remember whether there
are any guarantees wrt. data() of a zero-sized array, for example.


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