Effect on original feature: A valid C++ 2023 program that performs operations mixing a value of an
enumeration type and a value of a different enumeration type or of a
floating-point type is ill-formed.
[Example 1: enum E1 { e };
enum E2 { f };
bool b = e <=3.7; // ill-formed; previously well-formedint k = f - e; // ill-formed; previously well-formedauto x =true? e : f; // ill-formed; previously well-formed — end example]
Change: Comparing two objects of array type is no longer valid.
Rationale: The old behavior was confusing since it compared not the contents of the two
arrays, but their addresses.
Effect on original feature: A valid C++ 2023 program directly comparing two array objects is rejected as
ill-formed in this document.
[Example 2: int arr1[5];
int arr2[5];
bool same = arr1 == arr2; // ill-formed; previously well-formedbool idem = arr1 ==+arr2; // compare addressesbool less = arr1 <+arr2; // compare addresses, unspecified result — end example]