Daniel James
47a8c3fc67
Fix exception handling in rehash_impl
...
And improve tests so they will catch the error, and other similar errors.
2017-05-04 19:30:18 +01:00
Daniel James
d49d0e90a8
Delete nodes directly instead of through previous node
2017-05-04 00:14:08 +01:00
Daniel James
77bd45b1fa
Make second parameter of delete_nodes a node_pointer
2017-05-04 00:14:05 +01:00
Daniel James
622dff50df
Fix some code that could be using next_node
2017-05-03 23:36:09 +01:00
Daniel James
41f6a051ef
Some more configuration comments
2017-05-03 04:21:53 +01:00
Daniel James
d05619095c
Workaround problems with forward_as_tuple in older versions of clang
2017-05-03 04:21:52 +01:00
Daniel James
2f8492d720
Fix libc++ configuration
2017-05-03 04:21:52 +01:00
Daniel James
7911f491f6
Try using own allocator_traits with Sun compiler
...
The good news is that the old Sun workarounds aren't needed any more.
Unfortunately, there are a lot of exception test errors for
unordered_map and unordered_multimap when using libstdc++, which
probably means that std::pair isn't exception safe, which is a bit odd.
But first try using our allocator_traits implementation instead of the
standard one to see if that makes a difference. If it doesn't then I'll
probably just disable C++11 construction on this compiler, which should
fix the problem but will make allocators less useful.
2017-05-03 04:21:52 +01:00
Daniel James
b8c754d230
Set the high bit in bucket_info_ to false for first node in group
...
And true for the reset, so that in containers with unique keys
bucket_info_ is always just the bucket index.
2017-05-01 21:03:11 +01:00
Daniel James
338a94e577
Better rvalue emulation support in extractors
...
Means that inserting rvalues into unordered_set/unordered_map won't
create a node if no insert is required.
2017-05-01 21:03:11 +01:00
Daniel James
2e14c340a8
Reformat
2017-05-01 21:03:11 +01:00
Daniel James
35522d3ee0
Fix merging between containers with different hash/equality
...
This reverts commit 20b0c0a6d8
.
2017-04-30 14:29:05 +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
e7a3487df4
Remove policy template parameter from local iterators
2017-04-30 10:44:54 +01:00
Daniel James
c243895fc0
Remove odd check that should never be true
...
I think it was left over from the old grouped node implementation.
2017-04-30 10:44:54 +01:00
Daniel James
451d0f2fc5
Constructing nodes is nothrow, so no need to track
2017-04-30 10:43:06 +01:00
Daniel James
c75b332240
Cleaner create_buckets implementation
2017-04-30 10:43:06 +01:00
Daniel James
899248acbf
Avoid shadow warning on older versions off GCC
2017-04-29 09:31:17 +01:00
Daniel James
10b736d407
Remove BOOST_UNORDERED_CALL_CONSTRUCT0
2017-04-28 09:53:50 +01:00
Daniel James
0b61e6defb
Stop using allocators to construct/destroy internal types
...
The standard doesn't allow it. I should have known that.
2017-04-27 19:02:10 +01:00
Daniel James
03baef8b28
Remove Types::is_unique
2017-04-27 18:22:44 +01:00
Daniel James
f1435d53d4
Remove 'init' method from nodes
2017-04-27 18:22:44 +01:00
Daniel James
20b0c0a6d8
Only consider one node from each group in merge_unique
2017-04-27 18:22:44 +01:00
Daniel James
a1b1df84a0
Store bucket + whether first in group in node
...
Instead of the hash value.
2017-04-27 18:22:44 +01:00
Daniel James
408ebd0a0a
Add node_bucket function
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
ed326e2c87
Expand out more preprocessor repeats
2017-04-25 20:20:11 +01:00
Daniel James
bea4c6e29b
undef some macros
2017-04-25 20:20:11 +01:00
Daniel James
61df9479e5
Rename unique_node
2017-04-25 20:20:11 +01:00
Daniel James
e3ab7b5d2e
Remove BOOST_UNORDERED_EMPLACE_ARGSn macros
...
They're not used anywhere now.
2017-04-25 20:20:11 +01:00
Daniel James
679b73098e
Option to use grouped nodes everywhere
...
Seems to work okay, but I'm not happy with and of the options. So I'm
going to look into doing something else before the next release.
2017-04-25 09:54:28 +01:00
Daniel James
cba643fc51
Make setting max_load_ a tad more consistent
2017-04-25 09:54:28 +01:00
Daniel James
1c8edf0298
Remove early exit for empty containers
2017-04-25 09:54:28 +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
fc08f62d6a
Remove a TODO
2017-04-23 10:51:17 +01:00
Daniel James
7941771d61
Expand calls to at implementation
2017-04-23 10:09:18 +01:00
Daniel James
4f1c6e1ebf
Expand calls to init/move_init
2017-04-23 10:09:18 +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