mirror of
https://github.com/boostorg/multi_index.git
synced 2025-05-09 23:14:04 +00:00
* initial draft * modified appveyor.yml for this branch * dropped BOOST_RV_REF as it doesn't handle lvalue refs * befriended index_base from all indices so as to be grant access to final_extract_for_merge_ from an external container * added rvalue ref merge (test expected to fail in C++03) * added explicit boost::move on rvalue ref for the benefit of C++03 compilers * fixed previous workaround * refactored merge algorithm into multi_index_container * added hashed_index::merge * reimplemented sequenced_index::splice(position,x) * added missing this->'s * refactored SFINAEing code * made sequenced_index::splice(position,x) exception robust * reimplemented random_access_index::splice(position,x) * micro-optimized legacy code in random_access_index::splice(position,x) * added missing #include * reimplemented sequenced_index::splice(position,x,i) * reimplemented random_access_index::splice(position,x,i) * reimplemented sequenced_index::splice(position,x,first,last) * reimplemented random_access_index::splice(position,x,first,last) * re-engineered sequenced_index::splice(position,x,i) so that it works when source and destination belong to the same container * stylistic * re-engineered random_access_index::splice(position,x,i) so that it works when source and destination belong to the same container * re-engineered sequenced_index::splice(position,x,first,last) so that it works when source and destination belong to the same container * stylistic * fixed bug in rvalue ref overload of sequenced_index::splice(position,x,first,last) * fixed internal sequenced_index::splice(position,x,first,last) across different indices * re-engineered random_access_index::splice(position,x,first,last) the same way as done with sequenced_index * replaced multi_index_container::merge_ with transfer_range_ so as to refactor some code in non-key-based indices * fixed safe mode check for different-type containers * hardened merge/splice tests * s/BOOST_RV_REF/BOOST_FWD_REF * called the right merge_different overload * fixed problem with Boost.Move C++03 perfect fwd emulation * updated (C) year * allowed intra-container full splice * required position==end() in intra-container full splice * made pointwise splice return a pair<iterator,bool> * added partial merge functionality to key-based indices plus fixed a compile-time error with legacy splice code when applied to different-type indices * suppressed unused variable * fixed wrong signature in splice memfun * made safe-mode iterators SCARY * refactored any_container_view * implemented safe iterator transfer in merge/splice * reorganized internal deps * stylistic * automatically checked iterator invalidation upon merge/splice * removed commented-out code * checked allocator equality * reimplemented random_access_index internal, cross-index splice in linear time * updated docs * reverted appveyor.yml