Section: 126.96.36.199 [deque.modifiers] Status: C++20 Submitter: Tim Song Opened: 2017-03-30 Last modified: 2021-02-25 10:48:01 UTC
View all other issues in [deque.modifiers].
View all issues with C++20 status.
Most of the discussion of LWG 2853 applies, mutatis mutandis, to deque::erase. The relevant requirements table requires neither Copy/MoveInsertable nor Copy/MoveConstructible for the erase operations, so there's no way a copy/move constructor can safely be called.And "assignment operator or move assignment operator" is just "assignment operator", since "move assignment operator" is just a species of "assignment operator".
[2017-07 Toronto Wed Issue Prioritization]
Priority 0; Move to Ready
This wording is relative to N4659.
Change 188.8.131.52 [deque.modifiers] as indicated:
iterator erase(const_iterator position); iterator erase(const_iterator first, const_iterator last); void pop_front(); void pop_back();
-4- Effects: […]-5- Complexity: The number of calls to the destructor of T is the same as the number of elements erased, but the number of calls to the assignment operator of T is no more than the lesser of the number of elements before the erased elements and the number of elements after the erased elements. -6- Throws: Nothing unless an exception is thrown by the
copy constructor, move constructor,assignment operator , or move assignment operatorof T.