Proposed resolution:
Change [container.requirements]:
Table 89: Container requirements expression return type operational semantics assertion/note pre/post-condition complexity a = rv; X& All existing elements of a are either move assigned or destructed a shall be equal to the value that rv had before this construction (Note C)linearNotes: the algorithms swap(), equal() and lexicographical_compare() are defined in clause 25. Those entries marked "(Note A)" should have constant complexity. Those entries marked "(Note B)" have constant complexity unless allocator_propagate_never<X::allocator_type>::value is true, in which case they have linear complexity.
Those entries marked "(Note C)" have constant complexity if a.get_allocator() == rv.get_allocator() or if either allocator_propagate_on_move_assignment<X::allocator_type>::value is true or allocator_propagate_on_copy_assignment<X::allocator_type>::value is true and linear complexity otherwise.