Commit Graph

177 Commits

Author SHA1 Message Date
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
Daniel James
bfcdd51b4a Fix try_emplace overload 2017-04-28 09:53:50 +01:00
Daniel James
6466ce0b51 Make table the same for unique and equivalent keys 2017-04-27 18:22:44 +01:00