Created on 2004-06-03.00:00:00 last changed 171 months ago
[ post-Redmond: Steve provided wording. ]
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.
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:33 | admin | set | messages: + msg2738 |
2010-10-21 18:28:33 | admin | set | messages: + msg2737 |
2004-06-03 00:00:00 | admin | create |