[diff.cpp23.containers] # Annex C (informative) Compatibility [[diff]](./#diff) ## C.1 C++ and ISO C++ 2023 [[diff.cpp23]](diff.cpp23#containers) ### C.1.8 [[containers]](containers "23 Containers library"): containers library [diff.cpp23.containers] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L290) **Affected subclause:** [[span.overview]](span.overview) **Change:** span is constructible from initializer_list[.](#1.sentence-1) **Rationale:** Permit passing a braced initializer list to a function taking span[.](#1.sentence-2) **Effect on original feature:** Valid C++ 2023 code that relies on the lack of this constructor may refuse to compile, or change behavior in this revision of C++[.](#1.sentence-3) [*Example [1](#example-1)*: void one(pair); // #1void one(span); // #2void t1() { one({1, 2}); } // ambiguous between #1 and #2; previously called #1void two(span);void t2() { two({{1, 2}}); } // ill-formed; previously well-formedvoid *a[10];int x = span{a, 0}.size(); // x is 2; previously 0 any b[10];int y = span{b, b + 10}.size(); // y is 2; previously 10 — *end example*]