C++ Logo


Advanced search

Subject: Re: [SG10] Updates to SD-6
From: Ed Smith-Rowland (3dw4rd_at_[hidden])
Date: 2014-12-31 07:19:12

On 12/31/2014 05:31 AM, Jonathan Wakely wrote:
> On 31 December 2014 at 01:16, Ed Smith-Rowland wrote:
>>>> N4280 - Non-member size() and more: __cpp_lib_nonmember_container_access 201411.
>>> OK. I have another question about this one. It mentions that the new
>>> declarations are available by including any of an even dozen headers. Does
>>> that mean that our recommendations should specify this macro as being
>>> defined by all of those headers?
>> On second reading I'm not actually sure whether these things go into
>> std:: or std::experimental::...
>> So should they be pulled into <vector> or <experimental/vector>?
> They've been added to the C++17 working paper, not to a TS, so they
> are in namespace std and are in <vector> etc. not
> <experimental/vector>.
Thank you for the clarification. Looking at nonmember begin and end it
is clear that these new components are a continuation of these. These
new members are included in exactly the same headers as begin and end.

I move we retroactively add

__cpp_lib_nonmember_container_access ??? I think these came in with range-for.

for std::begin(), std::end(). Even this might not be the last word on
nonmember container access (wasn't someone going to add cbegin cend?)

In answer to Clarks question I think we should say that this macro is
included in all the container headers - annoying as it is.

SG10 list run by sg10-owner@lists.isocpp.org