Submitter: Fred J. Tydeman
Submission Date: 2016-01-18
Document: WG14 N1996

Summary

Is defined an identifier or an operator? I have seen it referred to as both in the standard. It matters for the wording in the suggested fix.

defined has some constraints that would be more useful if they were in the Constraints section of 6.10.1.

Suggested Technical Corrigendum

Add to 6.10.1p1:

The identifier defined shall not be the subject of a #define or a #undef preprocessing directive.

Remove from 6.10.8p2:

, nor the identifier defined,

Add to 6.10.1p1:

If the use of the defined unary operator does not match one of the two specified forms prior to macro replacement the behavior is undefined.

Remove from 6.10.1p4:

or use of the defined unary operator does not match one of the two specified forms prior to macro replacement,