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