Title
Contents of <ciso646>
Status
cd1
Section
[headers]
Submitter
Steve Clamage

Created on 2004-06-03.00:00:00 last changed 171 months ago

Messages

Date: 2010-10-21.18:28:33

[ post-Redmond: Steve provided wording. ]

Date: 2010-10-21.18:28:33

Proposed resolution:

Add to section 17.4.1.2 Headers [lib.headers] a new paragraph after paragraph 6 (the one about functions must be functions):

Identifiers that are keywords or operators in C++ shall not be defined as macros in C++ standard library headers. [Footnote:In particular, including the standard header <iso646.h> or <ciso646> has no effect.

Date: 2004-06-03.00:00:00

C header <iso646.h> defines macros for some operators, such as not_eq for !=.

Section [headers] "Headers" says that except as noted in clauses 18 through 27, the <cname> C++ header contents are the same as the C header <name.h>. In particular, table 12 lists <ciso646> as a C++ header.

I don't find any other mention of <ciso646>, or any mention of <iso646.h>, in clauses 17 thorough 27. That implies that the contents of <ciso646> are the same as C header <iso646.h>.

Annex C (informative, not normative) in [diff.header.iso646.h] C.2.2.2 "Header <iso646.h>" says that the alternative tokens are not defined as macros in <ciso646>, but does not mention the contents of <iso646.h>.

I don't find any normative text to support C.2.2.2.

History
Date User Action Args
2010-10-21 18:28:33adminsetmessages: + msg2738
2010-10-21 18:28:33adminsetmessages: + msg2737
2004-06-03 00:00:00admincreate