
El 05/10/2011 20:28, Phil Endecott escribió:
In another thread, Stephan T. Lavavej wrote:
Two-list partial-splice is now linear time. FDIS 23.3.5.5 [list.ops]/14: "Complexity: Constant time if &x == this; otherwise, linear time."
Is there an opportunity here for Boost.Containers to provide a std::list replacement that keeps the old O(1) splice and O(N) size? I can imagine a lot of demand for this once people discover that their old splicing code is trashed by a std library upgrade...
[OT: does anyone know of a list of "C++1x nasties" like this? It's easy to find lists of new features, but harder to find lists of misfeatures...]
Regards, Phil.
In Boost.Container you can avoid this problem if you know the distance between the arguments of a range splice: void splice(const_iterator p, ThisType &x, const_iterator first, const_iterator last, size_type n) This splice is constant-time and I've found many times you already know the the distance between first and last.