C++ Logo

STD-DISCUSSION

Advanced search

Subject: Re: Rationale for return type of the non-array version of std::ssize()
From: Bo Persson (bo_at_[hidden])
Date: 2020-04-28 08:35:44


On 2020-04-28 at 15:18, Gennaro Prota via Std-Discussion wrote:
> On Tue, Apr 28, 2020 at 1:43 PM Bo Persson via Std-Discussion
> <std-discussion_at_[hidden]> wrote:
>>
>> On 2020-04-28 at 12:46, Gennaro Prota via Std-Discussion wrote:
>>> Hi All,
>>>
>>> what is the reason why the non-array version of std::ssize() returns
>>>
>>> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>
>>>
>>> rather than just
>>>
>>> std::ptrdiff_t
>>>
>>> ?
>>>
>>> Thanks a lot.
>>>
>>
>> The containers size_type is not required to be convertible to ptrdiff_t.
>> This will try to find some other type in that case.
>
> Isn't a container's size_type guaranteed to be an unsigned integer type?
>

Maybe, but *what* integer type? How about user defined containers?

And C++20 std::span *almost* got a signed size() function. But perhaps
it is a view and not a container. :-)

     Bo Persson


STD-DISCUSSION list run by std-discussion-owner@lists.isocpp.org

Older Archives on Google Groups