Reference (section label): [expr.arith.conv] pargraph 1
Issue description
[expr.rel] paragraph 2 states that the result of the relational operator for e.g. 0 < 0 is bool. This is subsequently contradicted by [expr.rel] paragraph 3, which states that the usual arithmetic conversions are applied, and [expr.arith.conv] paragraph 1 states:
The purpose [of the usual arithmetic conversions] is to yield a common type, which is also the type of the result.
If paragraph 3 supersedes paragraph 2, then 0 < 0 is of type int.
Suggested resolution
Update [expr.arith.conv] paragraph 1 as follows:
Many binary operators that expect operands of arithmetic or enumeration type
cause conversions and yield result types in a similar way.
The purpose is to yield a common type
-, which
+; unless otherwise stated, that common type
is also the type of the result.
This pattern is called the usual arithmetic conversions, which are defined as follows:
Reference (section label): [expr.arith.conv] pargraph 1
Issue description
[expr.rel] paragraph 2 states that the result of the relational operator for e.g.
0 < 0isbool. This is subsequently contradicted by [expr.rel] paragraph 3, which states that the usual arithmetic conversions are applied, and [expr.arith.conv] paragraph 1 states:If paragraph 3 supersedes paragraph 2, then
0 < 0is of typeint.Suggested resolution
Update [expr.arith.conv] paragraph 1 as follows: