Issue 178624
Summary [libc++][test] `flat_set` tests have an `EvilContainer` that's too evil
Labels libc++
Assignees
Reporter StephanTLavavej
    https://github.com/llvm/llvm-project/blob/655c31dcab304cfced38dd15d2c15a4bea4145e4/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move.pass.cpp#L152-L167
https://github.com/llvm/llvm-project/blob/655c31dcab304cfced38dd15d2c15a4bea4145e4/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move.pass.cpp#L161-L176

[N5032](https://wg21.link/N5032) \[flat.set.overview\]/7 (likewise \[flat.multiset.overview\]/7):

> Any sequence container (\[sequence.reqmts\]) supporting *Cpp17RandomAccessIterator* can be used to instantiate `flat_set`.

However, this `EvilContainer` lacks the iterator-pair and `initializer_list` constructors required to be a sequence container.

\[sequence.reqmts\]/4:

> A type `X` meets the *sequence container* requirements if `X` meets the container requirements and the following statements and expressions are well-formed and have the specified semantics.

\[sequence.reqmts\]/8 and /15 require `X u(i, j);` and `X(il)`.

_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to