Movatterモバイル変換


[0]ホーム

URL:



This page is a snapshot from the LWG issues list, see theLibrary Active Issues List for more information and the meaning ofCD1 status.

465. Contents of <ciso646>

Section: 16.4.2.3[headers]Status:CD1Submitter: Steve ClamageOpened: 2004-06-03Last modified: 2016-01-28

Priority:Not Prioritized

View all otherissues in [headers].

View all issues withCD1 status.

Discussion:

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

Section 16.4.2.3[headers] "Headers" says that except as noted inclauses 18 through 27, the <cname> C++ header contents are the sameas 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 thecontents 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 notdefined as macros in <ciso646>, but does not mention the contentsof <iso646.h>.

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

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 definedas macros in C++ standard library headers. [Footnote:In particular, including the standard header <iso646.h>or <ciso646> has no effect.

[post-Redmond: Steve provided wording.]


[8]ページ先頭

©2009-2026 Movatter.jp