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
97734fd895
Implement unordered_multiset::contains()
2022-01-13 12:51:50 -08:00
Christian Mazakas
f5d470c531
Implement unordered_set::contains()
2022-01-13 08:03:54 -08:00
Christian Mazakas
1c459e6ee6
Implement heterogeneous extract()
for multiset
2022-01-05 08:14:58 -08:00
Christian Mazakas
abc7327116
Implement heterogeneous extract()
for set
2022-01-04 11:50:20 -08:00
Christian Mazakas
d5e5c08b87
Implement heterogeneous count()
for multiset
2022-01-04 09:05:17 -08:00
Christian Mazakas
56f11f94d8
Implement heterogeneous count()
for set
2022-01-03 15:48:51 -08:00
Christian Mazakas
1ab8cc4c0f
Implement heterogeneous erase()
for multiset
2022-01-03 13:54:06 -08:00
Christian Mazakas
202a438044
Implement heterogeneous find()
for multiset
2022-01-03 07:59:36 -08:00
Christian Mazakas
f813bbdf86
Implement heterogeneous equal_range()
for multiset
2021-12-29 10:36:23 -08:00
Christian Mazakas
57a2b65488
Implement heterogeneous equal_range()
for set
2021-12-27 12:20:52 -08:00
Christian Mazakas
9c07cf60a6
Deprecate table::erase_key_unique()
2021-12-23 13:12:52 -08:00
Christian Mazakas
36324af017
Implement heterogeneous erase()
for set
2021-12-23 13:03:08 -08:00
Christian Mazakas
05373cbb6b
Implement heterogeneous find()
for set
2021-12-23 09:54:12 -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
6466ce0b51
Make table the same for unique and equivalent keys
2017-04-27 18:22:44 +01:00
Daniel James
03baef8b28
Remove Types::is_unique
2017-04-27 18:22:44 +01:00
Daniel James
e9c4696544
Get rid of node_algo
2017-04-27 18:22:43 +01:00
Daniel James
ea64f2e46e
Remove the grouped node stuff
2017-04-27 18:22:43 +01:00
Daniel James
b070bb5e49
Move everything from table_unique/table_equiv into table
2017-04-24 09:46:05 +01:00
Daniel James
e518120104
Rename some copy/assign/move methods
...
But with a hack so that the static casts will work until there's a
better method.
2017-04-24 09:46:05 +01:00
Daniel James
84f1ef6d2d
Move constructor implementation into containers
2017-04-24 09:46:05 +01:00
Daniel James
77bf2b5e33
Rename methods to be different for unique/equiv keys
...
So that the implementation can be moved into a single class. Still some
other methods to rename. Some methods didn't need to be renamed (e.g.
try_emplace is only used with unique keys), but still renamed for
consistency.
2017-04-24 09:46:05 +01:00
Daniel James
13ff1e7fb1
Expand calls to count and equal_range implementation
2017-04-23 10:09:18 +01:00