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
Daniel James
25b0b66e52
Expand calls to erase implementation
...
Doesn't work as well as the previous changes.
2017-04-23 10:09:18 +01:00
Daniel James
da835e88b8
Expand calls to insert_range
2017-04-23 10:09:18 +01:00
Daniel James
b6c229e2bb
Expand calls to reserve implementation
2017-04-23 10:09:18 +01:00
Daniel James
19a45e028a
Expand calls to generic_find_node
2017-04-23 10:09:18 +01:00
Daniel James
435b7450d4
Expand calls to max_size implementation
2017-04-23 10:09:18 +01:00
Daniel James
a41a0f3a06
Expand calls to load_factor implementation
2017-04-23 10:09:18 +01:00
Daniel James
814926ef31
Expand calls to clear implementation
2017-04-23 10:09:18 +01:00
Daniel James
f6f5ecdc00
Expand calls to emplace implementation
...
Also manually call the emplace macro up to 9 arguments, nicer error
messages for little effort.
Does it matter that there's no longer a nice backend for
`please_ignore_this_overload`? I don't think so, I was worried that it
would be confusing if triggered, but I'm not really aware of that ever
happening.
2017-04-23 10:09:18 +01:00
Daniel James
42b6b13943
Use the preprocessor to increment emplace limit
...
So that there's no need to add one.
2017-04-23 10:04:28 +01:00
Daniel James
f3b179d451
Remove pointless duplication of move constructor
2017-04-20 22:59:00 +01:00
Daniel James
9cd673c71d
Specify clear as noexcept
2017-04-20 22:59:00 +01:00
Daniel James
85a834cf62
Comment on changes needed for C++17 support
2017-04-20 22:59:00 +01:00
Daniel James
5167c970af
Swap order of swap/clear to match standard
2017-04-20 22:59:00 +01:00
Daniel James
5eb10fd0b2
Move extract into place
2017-04-20 22:59:00 +01:00
Daniel James
e2e9959389
Split up emplace and emplace_hint code
...
Busywork I guess, but I think it's more readable this way. The emplace
macros are still unreadable, but I think they're rarely used.
Btw. a bit weird that clang format has removed the indentation on the
'// emplace' comment, not sure why that is.
2017-04-20 22:59:00 +01:00
Daniel James
1a18cd2196
Move capacity functions to match order in standard
2017-04-20 22:59:00 +01:00