Commit Graph

72 Commits

Author SHA1 Message Date
Ion Gaztañaga
139db663a3 * Implemented C++20 contains() for associative containers as specified in P0458R2.
* Fixed serious bug in heterogeneous lookup functions (is_transparent was broken).
2018-08-13 15:36:00 +02:00
Ion Gaztañaga
9a22431578 * Clean up constructor template auto deduction guides to use Boost.Container traits
* GitHub #73: '"triviality of pair".

* Fixed race condition bug in unsynchronized_pool_resource
2018-06-14 13:17:55 +02:00
Ion Gaztañaga
88f4a245ca Merge branch 'ctad_testing' of https://github.com/rmpowell77/container into rmpowell77-ctad_testing 2018-05-14 11:52:41 +02:00
Richard Powell
72195ae288 Adding Constructor Template Auto Deduction guides. 2018-05-11 11:35:25 -06:00
Ion Gaztañaga
48c21e3187 Implemented C++14's heterogeneous lookups. 2018-05-01 14:55:24 +02:00
Ion Gaztañaga
6ce2b2d0f8 Add improved range insertion to flat associative containers and improve merge operation for vector. 2017-12-26 22:04:15 +01:00
Ion Gaztañaga
fa2494631a Use namespace dtl instead of container_detail to avoid excessively long symbol names. 2017-11-07 00:51:46 +01:00
Ion Gaztañaga
9ee836ee3d Fixes to flat_map when used as an adaptor from regression tests errors in Mingw. 2017-08-28 11:58:43 +02:00
Ion Gaztañaga
c123accab1 Complete support for user-provided containers to flat_[multi]map/set containers, and instantiate them with several container types. 2017-08-28 10:45:29 +02:00
Ion Gaztañaga
2297f6af72 Modify flat associative containers to be adaptors if the allocator argument is a container. This allows using stable_vector, small_vector, static_vector as underlying containers. 2017-08-27 12:40:15 +02:00
Ion Gaztañaga
863b6e0d32 - Remove wrong explicit default constructor for flat_[multi]set.
- Add missing forceinline to flat_map
2017-08-17 23:58:58 +02:00
Ion Gaztañaga
ec91367383 Review all associative containers and implement a different constructor overload to avoid any unnecessary copy construction of the predicate or the allocator. 2017-05-16 16:29:49 +02:00
Ion Gaztañaga
6580c94573 Documentation fixes 2017-04-08 00:23:41 +02:00
Ion Gaztañaga
3516da36b0 Doxygen documentation fixes 2017-04-08 00:17:23 +02:00
Ion Gaztañaga
d6749960fc Implement extract_sequence and adopt_sequence for flat ordered associative containers 2017-04-05 16:06:31 +02:00
Ion Gaztañaga
f540b83ccd * Implemented merge operations for associative containers.
* Update tree-based containers to changes done in Intrusive internal utilities in order to fix Trac 12432.
2016-09-03 00:03:42 +02:00
Ion Gaztañaga
4298d1984b * Add missing extract() and insert(node_type) funtion to associative containers.
* Simplify select1st
2016-08-29 00:06:57 +02:00
Ion Gaztañaga
1467c51a4e Implemented missing try_emplace member for maps. 2016-08-26 01:47:32 +02:00
Ion Gaztañaga
2d6f781a2f Implemented "insert_or_assign" for map-like containers. 2016-08-18 20:29:04 +02:00
Ion Gaztañaga
fb1be6fa75 Fix Trac #12117 ("flat_set constructor with ordered_unique_range") adding checks to constructors in debug mode
Fix typos on value_type checks in flat_[multi]map.
2016-08-15 23:22:57 +02:00
Ion Gaztañaga
225e2da77e Revised noexcept expressions of default and move constructors in all containers. 2016-08-01 23:49:51 +02:00
Ion Gaztañaga
e50a8f7cdf Merge branch 'patch-1' of https://github.com/praetorian20/container into praetorian20-patch-1 2015-10-24 21:39:06 +02:00
Ion Gaztañaga
7764e05444 Changes to support GCC 3.4 2015-10-12 18:51:08 +02:00
Ashish Sadanandan
25f34506fd Doc fixes for flap_map complexity requirements
Removed typo from one complexity spec and added periods after few others for consistency
2015-08-14 16:27:19 -06:00
Ion Gaztañaga
d39b1c143c Add missing initializer list overload taking an additional allocator. 2015-02-28 23:46:08 +01:00
Ion Gaztañaga
6c5e527c60 Improve allocator propagation test with new constructors and refactor code to avoid too many wrappers. 2015-02-26 00:32:32 +01:00
Ion Gaztañaga
22f1d32f7b Addd new constructors to containers, according to C++14's new constructors taking allocator arguments. 2015-02-03 14:08:29 +01:00
Ion Gaztañaga
10d027aa9c Include boost/config.hpp before testinG BOOST_HAS_PRAGMA_ONCE. 2015-02-02 15:26:53 +01:00
Ion Gaztañaga
b786c8f716 Replaced BOOST_CONTIANER_NOEXCEPT with BOOST_NOEXCEPT 2015-01-28 22:11:00 +01:00
Ion Gaztañaga
9fede24d7e Replace BOOST_MOVE_IMPDEF with BOOST_CONTAINER_IMPDEF 2015-01-26 00:33:40 +01:00
Ion Gaztañaga
ef7137a945 Replace BOOST_MOVE_IMPDEF with BOOST_CONTAINER_IMPDEF 2015-01-26 00:30:01 +01:00
Ion Gaztañaga
cb732a22be Replace BOOST_MOVE_IMPDEF with BOOST_CONTAINER_IMPDEF 2015-01-26 00:14:35 +01:00
Ion Gaztañaga
dbafd61d4d updated move assignments and swap operations to "N4258: Cleaning-up noexcept in the Library, Rev 3" with some customizations. 2015-01-19 00:18:44 +01:00
Ion Gaztañaga
a322203a89 Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once. 2015-01-10 12:50:17 +01:00
Ion Gaztañaga
360957a797 Massive dependency reduction. Removed dependency on several boost libraries and standard C++ headers. 2015-01-02 19:34:21 +01:00
Ion Gaztañaga
955248b739 Replace "Allocator" template parameter with "A", according to the standard. 2014-12-11 22:01:58 +01:00
Ion Gaztañaga
7971dc6602 Refactored uses of <iterator> and <algorithm> to avoid dependencies where possible. 2014-11-26 07:08:06 +01:00
Ion Gaztañaga
6f1f162cb3 - Added nth and index_of.
- Used BOOST_MOVE_BASE
2014-11-01 20:03:25 +01:00
Ion Gaztañaga
3025cc41b6 Replace "boost/move/utility.hpp" with "boost/move/utility_core.hpp" to minimize dependencies. 2014-09-17 23:36:23 +02:00
Ion Gaztañaga
f213f55f20 Includes: Updated detail/xxx.hpp includes to core/xxx.hpp, added some missing move/traits.hpp and removed some unused ones. 2014-09-17 21:49:47 +02:00
Robert Matusewicz
e2b815c196 add std::initializer_list support for flat_map and flat_multimap 2014-08-28 13:15:10 +02:00
Ion Gaztañaga
a166923e83 Fixed documentation errors with "position", "pos", "hint" and "p" iterators indicating insertion/emplace position. 2014-08-15 17:20:57 +02:00
Ion Gaztañaga
24cf58a0f0 Fixed wrong comment on required allocator type 2014-08-14 13:39:28 +02:00
Ion Gaztañaga
8c1bfe2881 Removed trailing whitespaces 2014-05-28 15:50:13 +02:00
Ion Gaztañaga
9b25c7134e * Fixed BOOST_CONTAINER_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_move_assignment) missing ::value
* Optimized insert_equal(ordered_range_t,...) and insert_unique(ordered_unique_range_t, ...) for elements to be inserted in the end.

* Added range insertion overload (non-standard extension) to vector taking the number of elements to avoid reiterations with std::distance.
2014-04-23 23:18:18 +02:00
Ion Gaztañaga
0b720f82b4 Fixed #9916: "Allocator propagation incorrect in the assignment operator of most".
Fixed #9932: "Missing assignment operator from related static_vector".
Added missing details from issue #9915
2014-04-21 13:59:49 +02:00
Ion Gaztañaga
a4b839628a Implemented unique associative containers' equal_range using lower_bound_range which is more efficient with heavy comparison functions.
Updated benchmark to avoid measuring redundant operations in searches.
2014-01-20 13:20:02 +01:00
Ion Gaztañaga
2b8f88b034 Documented template parameters 2014-01-03 14:52:56 +01:00
Ion Gaztañaga
2489010881 Document comparison operators for non tree associative containers. 2014-01-03 12:43:03 +01:00
Ion Gaztañaga
9ac4ae6fdc Added a static assert to make sure that flat_[xxx]map::allocator_type::value_type is std::pair<Key, T>. Fixed some test cases failing to do that properly. 2013-12-24 19:00:52 +01:00