C++ Logo

SG10

Advanced search

Subject: Re: [SG10] Draft: ready for the mid-term mailing?
From: Jens Maurer (Jens.Maurer_at_[hidden])
Date: 2013-06-26 15:05:47


First of all, I generally like the current state of the proposal.

__has_include() is probably a good way forward, because there is
no really convincing spot where to put a plain macro indicating
the presence of the header.

On 06/26/2013 09:13 PM, Nelson, Clark wrote:
> Please note that I am unable to provide a rational explanation for SG10's
> decision not to recommend macros specific to the new headers.

I don't follow. I can see two yellow spots in the attached file.
Assuming N3662 is dynarray (sorry, I'm in a hurry), this is
covered by __has_include(<dynarray>), right?

Same for <optional>.

If, at some later time, there are incremental changes, we can
introduce a plain macro __cpp_lib_dynarray with a version number,
defined in the appropriate header, right?

Yes, that leads to

#if __has_include(<dynarray>)
#include <dynarray>
#else
#define __cpp_lib_dynarray 0
#endif

in user code in some hypothetical future standard with a revised
<dynarray>. I don't see a way out unless rehashing the __has_include
discussion.

Jens


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