Affected subclause: [dcl.init.list]
Change: Pointer comparisons between
initializer_list objects' backing arrays
are unspecified
. Rationale: Permit the implementation to store backing arrays in static read-only memory
. Effect on original feature: Valid C++ 2023 code
that relies on the result of pointer comparison between backing arrays
may change behavior
. For example:
bool ne(std::initializer_list<int> a, std::initializer_list<int> b) {
return a.begin() != b.begin() + 1;
}
bool b = ne({2,3}, {1,2,3});