[cfe-dev] std::vector insert type requirements

Nikita Alekseev via cfe-dev cfe-dev at lists.llvm.org
Tue Jul 3 04:10:02 PDT 2018

Hello everyone, I hope this mailing list is the right place to ask about this. When I try to compile this particular code sample https://godbolt.org/g/J7cgbV <https://godbolt.org/g/J7cgbV> I get an error, that A must have a copy assignment operator. However when reading the documentation at https://en.cppreference.com/w/cpp/container/vector/insert <https://en.cppreference.com/w/cpp/container/vector/insert> I do not see any such requirements for this particular overload of insert. It does mention that T must be moveAssignable and MoveInsertable if Iterator is not ForwardIterator. Even if I define move assignment operator it still requires copy assignment.

I have tested it on Clang 4, Clang 6, GCC 8.1 and get the same error. MSVC 2017 compiles when move assignment is present. It would be great if someone could explain this behavior.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180703/dbf56dc9/attachment.html>

More information about the cfe-dev mailing list