2828. Clarify <cstdalign> (following adoption of P0063r3)

Section: 23.15.4.3 [meta.unary.prop] Status: NAD Editorial Submitter: Thomas Koeppe Opened: 2016-11-20 Last modified: 2017-02-02

Priority: Not Prioritized

View other active issues in [meta.unary.prop].

View all other issues in [meta.unary.prop].

View all issues with NAD Editorial status.

Discussion:

In Oulu, we adopted P0063r3 to base C++ on C11. C11 is the first version of C that defines a header <stdalign.h>. However, C++11 (!) already seems to have defined headers <cstdalign> and <stdalign.h>, even though C99 does not have <stdalign.h>.

This appears to be the consequence of the partial application of N3093 from 2010, which proposes both to add <cstdalign> and to rebase C++ onto C11. However, the latter part didn't happen, leaving the header dangling without a sensible specification.

I suggest two actions:

  1. 1) Recognize that C++11 and C++14 are defective in mentioning <cstdalign> and <stdalign.h>.
  2. 2a) Consequently, P0063r3 is adding <cstdalign> as a new feature; I would like to revert that decision and not add this header. Instead, P0063r3 should only add <stdalign.h> (which should be done in Annex D) for compatibility with C.
  3. 2b) If we do not want to un-add <cstdalign>, we should at least put the specification of <cstdalign> into Annex D.

Moreover, I would like to ask LWG for editorial dispensation to move the specifications of <ccomplex>, <ctgmath> and <cstdbool> wholly into Annex D, too, since these are now deprecated features that are not otherwise referred to or needed by the main text. An example change is available on github, which incorporates solution 2b. Wording for solution 2a can be produced on request.

[2017-01-27 Telecon]

NAD Editorial; Thomas will make the editorial changes (option 2B)

Proposed resolution: