On Wednesday 20 January 2016 22:25:27 Kevin Kofler wrote: > And Qt also has a real > pop unlike the misleadingly-named STL one: takeLast/takeFirst.
In the Standard Library's defence: the pop() function does not return the element due to exception-safety. Example: value_type takeLast() { value_type v = last(); remove(size() - 1); return v; } The copy constructor is called once, then the move constructor. If value_type's move constructor is not noexcept, then it may throw after the container resized. You could add this overload to solve it: void pop(value_type &where) { where = back(); pop(); } But then your code looks like: Element e; // may throw, allocate resources, etc. v.pop(e); instead of: Element e = v.back(); // move-constructed v.pop(); Also note that this overload would keep the integrity of the container, but not necessarily your data. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development