Commit Graph
179 Commits
Author SHA1 Message Date
Christian Mazakas 530437c21b Implement deduction guides for unordered_[multi]map 2022-11-07 15:55:29 -08:00
Christian Mazakas 4310809025 Implement missing constructors outlined by LWG issue 2713 (#160)
* Harden initializer_list constructor tests

* Add tests for constructors as specified in LWG issue 2713

* Add missing constructors to unordered_flat_map

* Add missing constructors to unordered_flat_set

* Add missing constructors to unordered_[multi]map

* Add missing constructors to unordered_[multi]set
2022-11-05 13:08:29 +01:00
Christian Mazakas db9d9d1f77 Update implementation to support a default-constructible table and grouped_bucket_array 2022-08-30 15:20:31 -07:00
Christian Mazakas f9eae4153f Update code to be valid when the internal buckets_ data member is moved-from 2022-08-18 09:04:53 -07:00
Christian Mazakas a31e894411 Update implementation to use erase_node() where applicable 2022-07-25 11:35:38 -07:00
Christian Mazakas 5a456eb295 Refactor internal implementation to use "fast closed-addressing" aka fca 2022-06-01 11:49:09 -07:00
Peter Dimov 0d3ece98c1 Merge pull request #106 from cmazakas/missing-nodiscard
Add missing `[[nodiscard]]` qualifiers as outlined by C++20
2022-02-24 18:00:00 +02:00
Christian Mazakas 3d952d3c0f Add missing [[nodiscard]] qualifiers as outlined by C++20 2022-02-23 14:26:28 -08:00
Christian Mazakas c322cc5621 Implement erase_if() for Unordered via function template in detail namespace 2022-02-23 11:36:48 -08:00
Christian Mazakas e2b6865938 Fix C4800 warnings in msvc by manually comparing pointers to 0 2022-02-10 08:37:53 -08:00
Christian Mazakas ad8a11bb49 Implement unordered_multimap::contains() 2022-01-12 12:57:27 -08:00
Christian Mazakas a26e1c0f41 Implement unordered_map::contains() 2022-01-12 10:36:40 -08:00
Christian Mazakas 77c4a09a9b Implement heterogeneous count() for multimap 2021-12-22 12:59:52 -08:00
Christian Mazakas ec288246d0 Implement heterogeneous extract() for multimap 2021-12-21 13:22:18 -08:00
Christian Mazakas 57054f7451 Implement heterogeneous erase() for multimap 2021-12-21 09:27:00 -08:00
Christian Mazakas 1c6c085127 Update unordered_map to use singular type trait for erase() / extract() SFINAE 2021-12-21 09:27:00 -08:00
Christian Mazakas 19d2fe8738 Implement heterogeneous equal_range() for multimap 2021-12-20 09:28:04 -08:00
Christian Mazakas d8fe1a17cc Replace usage of compound is_transparent type trait with singular usage of are_transparent 2021-12-17 09:53:16 -08:00
Christian Mazakas 9945ce7583 Implement heterogeneous find() for multimap 2021-12-17 09:53:16 -08:00
LeonineKing1199 13cd5aa4ce Implement initial draft of heterogeneous extract() 2021-12-06 13:06:05 -08:00
LeonineKing1199 e4d0693eb9 Fix erroneous placement of heterogeneous erase() from multimap to map 2021-12-03 10:08:30 -08:00
LeonineKing1199 8b438dea76 Use erase_key_unique_impl() directly so that eventually erase_unique() can be deprecated 2021-12-03 08:48:20 -08:00
LeonineKing1199 33f84624ec Add initial draft of heterogeneous erase() 2021-12-02 15:59:12 -08:00
LeonineKing1199 13f40e4333 Implement heterogeneous equal_range() for unordered_map 2021-12-01 09:39:07 -08:00
LeonineKing1199 8f1fc75fdf Implement heterogeneous find() 2021-11-29 14:37:04 -08:00
LeonineKing1199 fd0cab2ab8 Remove out-of-line defintion for transparent count() to hopefully appease msvc-9.0 2021-11-22 15:43:28 -08:00
LeonineKing1199 8ba710637a Remove detail::make_dependent in favor of an extra template parameter in is_transparetn 2021-11-22 13:29:41 -08:00
LeonineKing1199 59db6cf788 Add SFINAE to transparent count() overload in unordered_map 2021-11-22 11:16:04 -08:00
LeonineKing1199 f41b3e8295 Get initial prototype of transparent count() working 2021-11-19 15:29:57 -08:00
LeonineKing1199 7ccd62ba98 Update SFINAE expressions to be in the return type instead of a defaulted function parameter 2021-11-18 12:54:17 -08:00
Edward Diener 887f1dc07c Change __BORLANDC__ to BOOST_BORLANDC and __CODEGEARC__ to BOOST_CODEGEARC, which are3defined in Boost config for the Embarcadero non-clang-based compilers. 2020-03-31 22:47:48 -04:00
Daniel James 09be9bae04 Use boost::is_nothrow_swappable, now that it's available everywhere 2018-01-27 09:38:19 +00:00
Daniel James ea599a66b7 Disable 'conditional expression is constant' on older Visual C++ 2018-01-23 15:40:58 +00:00
Daniel James dea525b2b7 Suppress msvc waring "conditional expression is constant" 2018-01-10 11:35:22 +00:00
Daniel James f12009fc61 operator= noexcept support 2018-01-05 17:54:44 +00:00
Daniel James 5854090dc7 Swap noexcept support
Not properly supported as we don't have is_nothrow_swappable yet.
2018-01-05 17:48:13 +00:00
Daniel James 7615fabc80 Rewrite node handles using a lightweight limited optional
Will try to use std::optional when available. Also using
allocator_traits::is_always_equal support.
2018-01-03 23:15:55 +00:00
Daniel James b50e0d610f Initial implementation of template deduction guides 2017-12-19 12:56:51 +00:00
Daniel James 978944fab2 Use same code for move constructing all containers
Copies the data layout from the source, so it doesn't need to hash anything.
2017-10-05 10:56:02 +01:00
Daniel James 6b5b968b97 Format with clang-format 4.0 2017-10-05 10:54:22 +01:00
Daniel James f72b0353d4 Shuffle code around for readability
The new indentation made some of the code difficult to read, especially
where macros were concerned, so move things around and add more explicit
namespace declarations.
2017-06-11 20:55:59 +01:00
Daniel James 0676b4f4ca Change clang format indentation + .editorconfig file 2017-06-11 20:55:59 +01:00
Daniel James 5b97fbc292 Make insert from node_handle move only on old GCC 2017-05-19 09:42:56 +01:00
Daniel James e0227618bb Move a few things around to match the order in the standard 2017-05-17 16:47:57 +01:00
Daniel James ee9a5a2c77 Add a configuration macro for Sun C++ workarounds 2017-05-16 19:01:50 +01:00
Daniel James b6c6bfbe7f Statically handle 'is_unique' in assignments 2017-05-06 04:58:57 +01:00
Daniel James 6e074d7165 Get rid of delete_nodes 2017-05-06 04:58:57 +01:00
Daniel James 77bd45b1fa Make second parameter of delete_nodes a node_pointer 2017-05-04 00:14:05 +01:00
Daniel James 2e14c340a8 Reformat 2017-05-01 21:03:11 +01:00
Daniel James 7b5f73f6c2 Disable all sunpro workarounds on latest version
I have no idea if they're still working. I wasn't able to run the latest
solaris in a virtual machine on my computer, so this is the only way to
test.
2017-04-30 10:44:54 +01:00