std::vector insert type requirements

Hello everyone, I hope this mailing list is the right place to ask about this. When I try to compile this particular code sample I get an error, that A must have a copy assignment operator. However when reading the documentation at 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.

please look at: