24 Commits

Author SHA1 Message Date
joaquintides
5c17744f34 fixed documentation error 2024-03-15 09:49:30 +01:00
joaquintides
7c3cb66008 corrected statements on SCARYness 2021-08-30 20:55:10 +02:00
joaquintides
a52810fc3d
implemented merge operations (#49)
* 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
2021-08-19 10:41:03 +02:00
joaquintides
5623d2b9e2 added contains (#35) 2021-07-29 12:04:15 +02:00
joaquintides
e69466039d implemented node extraction/insertion (#27) 2020-05-09 20:25:41 +02:00
joaquintides
b9a4467f34 addressed https://svn.boost.org/trac/boost/ticket/12542 2017-08-24 23:41:35 +02:00
joaquintides
c055516320 clarified permissible usage of modify functions as per https://svn.boost.org/trac/boost/ticket/11801 2015-11-26 20:29:19 +01:00
joaquintides
096741d58b updated (C) year as per previous commit 2015-11-24 08:36:32 +01:00
zerotypos-found
1db23a5f1c Fix typo in comment and docs. 2015-11-24 12:08:02 +09:00
joaquintides
d0a7194db7 added ranked indices, plus some doc stylistic updates 2015-04-19 21:10:31 +02:00
joaquintides
6d6bb75504 added interoperability of std::tuples with composite keys 2014-08-20 11:19:40 +02:00
joaquintides
86d7b3ef6e copied content from develop after wrongly made merge 2013-12-25 12:36:32 +01:00
Joaquín M López Muñoz
0bc802ad7d merged [85001], [85004], [85005], [85016], [85017], [85018], [85022], [85028], [85099] and [85100] from trunk
[SVN r85146]
2013-07-24 07:52:40 +00:00
Joaquín M López Muñoz
ff51956131 merged [55055] and [55058] from trunk
[SVN r55081]
2009-07-22 15:16:28 +00:00
Joaquín M López Muñoz
bd8ea1bc86 merged up to rev. 47041 from trunk
[SVN r47045]
2008-07-03 16:51:53 +00:00
Beman Dawes
0468378c0d Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
Joaquín M. López Muñoz
0c0acfaa3f merged from trunk to branch
[SVN r34527]
2006-07-13 07:57:18 +00:00
Joaquín M. López Muñoz
f8eb1b16ce added navigational <link>s
[SVN r32659]
2006-02-06 15:36:55 +00:00
Joaquín M. López Muñoz
b3de839dee updated link to TR1 doc; erase(position) and erase(first,last) now return iterator to following element
[SVN r30721]
2005-08-29 11:51:18 +00:00
Douglas Gregor
b28164d7f8 Merged from 1.33.0 release
[SVN r30540]
2005-08-12 13:02:37 +00:00
Joaquín M. López Muñoz
d4ff4dab15 typo
[SVN r29457]
2005-06-07 06:03:13 +00:00
Joaquín M. López Muñoz
f1176d462b minor reformatting
[SVN r29055]
2005-05-19 06:00:34 +00:00
Joaquín M. López Muñoz
94894da751 copypaste error
[SVN r28377]
2005-04-21 09:22:51 +00:00
Joaquín M. López Muñoz
f49ca98c71 added hashed indices
[SVN r27820]
2005-03-28 11:03:07 +00:00