Title
Undefined behavior when macro-replacing "defined" operator
Status
open
Section
15.2 [cpp.cond]
Submitter
US

Created on 2019-10-23.00:00:00 last changed 23 months ago

Messages

Date: 2023-01-15.00:00:00

Additional notes (January, 2023):

Forwarded to SG12 with paper issue 1407, by decision of the CWG and SG12 chairs.

Date: 2019-10-23.00:00:00

(From National Body comment US 130 on the C++20 DIS.)

Subclause 15.2 [cpp.cond] paragraph 10 specifies:

If the token defined is generated as a result of this replacement process or use of the defined unary operator does not match one of the two specified forms prior to macro replacement, the behavior is undefined.

Undefined behavior during lexing is not acceptable. The behavior ought to be well-defined, ill-formed, or conditionally-supported.

History
Date User Action Args
2023-01-05 08:22:04adminsetmessages: + msg7109
2019-10-23 00:00:00admincreate