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
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
cfe4c26f99
Explicitly write out boost::tuple template arguments
...
GCC 4.6 doesn't support using variadic arguments for a fixed length template.
There's a config macro for this, but might as well use the same code
everywhere.
2017-04-23 09:31:18 +01:00
Daniel James
3117611a55
New tuple implementation
...
Adjusts to use less arguments on Visual C++ 11, which will hopefully fix
it on that compiler. Also changed to be a little less preprocessor
heavy. I'm not sure about the __SUNPRO_CC support, hopefully recent
versions of that compiler will have better support, and can use the
normal implementation. Will check that later.
2017-04-22 18:31:10 +01:00
Daniel James
1e491533fa
More consistent std::tuple configuration
...
Was getting a weird test failure for Visual C++ 11,
BOOST_NO_CXX11_HDR_TUPLE is defined, so the code doesn't support
std::tuple, but BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT was also
true, and so there are functions for constructing using
std::piecewise_construct/std::tuple, which don't work.
So, I'm assuming that if BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT is true,
then there must be a std::tuple. I guess it doesn't have full C++11 support,
which is why BOOST_NO_CXX11_HDR_TUPLE is defined, but it appears to be
good enough for us. If not, this will break things.
2017-04-21 20:32:56 +01:00
Daniel James
b067e65731
Clean table forward declarations
2017-04-20 22:59:00 +01:00
Daniel James
6bdf1ba244
Fix a comment
2017-04-19 10:21:13 +01:00
Daniel James
cee94e9fcb
Fix unused parameter warning
2017-04-19 09:20:31 +01:00
Daniel James
e0054c7dd0
Remove alloc parameter from construct_value
2017-04-18 10:14:26 +01:00
Daniel James
3414e6628a
Use allocator to construct/destroy nodes
2017-04-18 10:14:26 +01:00
Daniel James
08ce2c98e0
Rename call_construct to construct_value
2017-04-18 10:14:26 +01:00