P4307R1 — An Infix Operator and a Keyword Escape for C++
Steve Downey
EWG
Revisions R1Oct 2026R0Sep 2026
C++ reserves non-strict evaluation to a fixed set of built-ins: ‘&&‘, ‘||‘ and ‘?:‘. The comma operator is the near neighbor, and is not one of them: it evaluates both of its operands, and what it fixes is the **sequencing**. Overloading does not get non-strict evaluation back: an overloaded ‘operator&&‘ evaluates both operands, which is the trap everyone has been bitten by, and the reason the standing advice is: don’t. Non-strict evaluation has been closed to user code since C++98.