Commit Graph

1248 Commits

Author SHA1 Message Date
Daniel James
6bdf1ba244 Fix a comment 2017-04-19 10:21:13 +01:00
Daniel James
d47754acac Include unordered macro values in test output 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
3ae9930979 Merge branch 'feature/better-construction' into develop 2017-04-18 10:14:53 +01:00
Daniel James
2effcfa195 Intro to compliance section
Needs more info on C++17 compliance - particularly `noexecpt`.
2017-04-18 10:14:26 +01:00
Daniel James
8c9080f11f Document changes to allocator use 2017-04-18 10:14:26 +01:00
Daniel James
ef05493c83 Test that construct/destroy aren't used when C++11 isn't available 2017-04-18 10:14:26 +01:00
Daniel James
7a0a598649 Don't track construction when using boost::tuple
Because it doesn't quiet work on C++11 compilers onwards.
2017-04-18 10:14:26 +01:00
Daniel James
cafd236a18 Test more memory tracking 2017-04-18 10:14:26 +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
Daniel James
6d79a322e2 Use macros to reduce call chain 2017-04-18 10:14:26 +01:00
Daniel James
9e70680044 Bypass construct_value/call_destroy_in a few places 2017-04-18 10:14:26 +01:00
Daniel James
7de8c91301 Remove calls to const_cast_pointer
It was needed because std::allocator_traits::construct doesn't work with
a const pointer (e.g. pointer to the first member of a std::pair). But
now we're only calling construct if BOOST_UNORDERED_CXX11_CONSTRUCTION
is true, so the allocator_traits::construct is no longer used here.
2017-04-18 10:14:26 +01:00
Daniel James
c333a7f9fc Use piecewise construction where possible 2017-04-18 10:14:26 +01:00
Daniel James
bc36a06a2d Comment about call_construct 2017-04-18 10:14:26 +01:00
Daniel James
e62ac22f0b Replace BOOST_UNORDERED_DETAIL_FULL_CONSTRUCT with BOOST_UNORDERED_CXX11_CONSTRUCTION
Require good construct support and piecewise construction. I don't know
if there are any platforms with good construct support, but no piecewise
construction, if there are then they'll no longer use
'allocator_traits::construct'/'allocator_traits::destruct'.
2017-04-18 10:14:26 +01:00
Daniel James
1092c972c9 Use allocator_traits to construct/destruct buckets 2017-04-18 10:14:26 +01:00
Daniel James
7e5520f974 Increase template depth for GCC
This appears to be an unavoidable problem with GCC's tuple
implementation. For example:

http://stackoverflow.com/q/23374953/2434

Appears to be okay in later versions of GCC though.
2017-04-18 10:14:26 +01:00
Daniel James
2b01bdbc25 More general deprecated check
`__has_cpp_attribute(deprecated)` returns true for C++11, but then warns
that it's a C++14 attribute, so only check in C++14 mode.
2017-04-16 16:34:22 +01:00
Daniel James
64a3be7d3e Use aligned_storage's address method to get pointer 2017-04-16 10:37:10 +01:00
Daniel James
c0e03c3640 Add some more details to change log 2017-04-15 20:52:00 +01:00
Daniel James
ed8c0f9ecd Add deprecated attributes to deprecated functions 2017-04-15 17:35:09 +01:00
Daniel James
2bfc59c461 Make node_handler constructor private + additional compile tests 2017-04-15 17:35:09 +01:00
Daniel James
727e36e6a6 Comment about clear_buckets/create_buckets awkwardness.
They both leave the container in an invalid state that needs to be
cleaned up immediately. This confused me slightly.
2017-04-15 17:35:09 +01:00
Daniel James
09bddd8df4 Clear buckets before deleting nodes in clear.
The order shouldn't really matter as nothing throws an exception, but it
seems cleaner to never have any dangling pointers.
2017-04-15 17:35:08 +01:00
Daniel James
f089adc160 Change get_key to have node parameter 2017-04-15 17:35:08 +01:00
Daniel James
97b68ea05e Rename (grouped_)table_impl to table_unique/equiv
The old names don't make sense any more as either style can be used for
containers with equivalent keys, due to the use of node_algo.
2017-04-15 17:35:08 +01:00
Daniel James
972ac220f5 Add missing insert(P&&) methods to unordered_map/unordered_multimap 2017-04-15 17:35:08 +01:00
Daniel James
5d98f3d0f0 Noexcept specs for swap free functions 2017-04-15 17:35:08 +01:00
Daniel James
51cd1cd2af Some more typos 2017-04-12 08:25:14 +01:00
Daniel James
7e940e6e45 Fix some typos 2017-04-12 08:01:10 +01:00
Daniel James
7aa7d8935c Merge branch 'feature/doc-clarification' 2017-04-11 23:50:21 +01:00
Daniel James
2f4d286a51 Merge branch 'feature/doc-clarification' into develop 2017-04-11 23:40:48 +01:00
Daniel James
1bc5d87c5d Clarify the extract and merge don't work between different compatible containers. 2017-04-11 23:40:13 +01:00
Daniel James
c2d2be021a Don't test inserting from initializer list in old clang
There's a problem with it causing an ambiguous overload. I don't think
there's anything we can do to fix that, so just don't test it.

There's another bug where a std::pair doesn't get correctly constructed
from an rvalue when using Clang 3.1 in C++11 mode. But I can't see any
way to easily fix that, and it's a pretty old compiler now.
2017-04-08 06:17:43 +01:00
Daniel James
6b32d6bf09 Merge branch 'develop' 2017-04-04 22:22:33 +01:00
Daniel James
c18f57f62b Add missing copyright/license to a couple of files 2017-04-04 22:06:15 +01:00
Daniel James
e657f75a17 Boost 1.64.0 changelog entry 2017-03-15 11:16:53 +00:00
Daniel James
d060d3a0e5 Fix ironic typo 2017-03-15 11:15:27 +00:00
Daniel James
3c8c360f8c Merge branch 'develop' 2017-03-08 01:53:09 +00:00
Daniel James
0af2c732ab Fix use of BOOST_STATIC_ASSERT for older preprocessors 2017-03-01 16:52:43 +00:00
Daniel James
68fe365f5b Try to avoid Visual C++ warning C4800 2017-03-01 16:50:05 +00:00
Daniel James
91bbd5fcb2 Make emplace_args1 constructor explicit 2017-03-01 16:46:18 +00:00
Daniel James
ac6b6bca48 Merge branch 'develop' 2017-03-01 00:15:41 +00:00
Daniel James
b6e3f2303f Fix call to try_emplace_impl 2017-03-01 00:13:02 +00:00
Daniel James
da370a6a1a Avoid Visual C++ warning C4127 2017-02-27 12:20:37 +00:00
Daniel James
4aa74e5feb Merge between set/multiset and map/multimap 2017-02-27 03:59:02 +00:00
Daniel James
13322fe858 Option to use same node type everywhere.
Will allow me to implement merge and extract fully.
2017-02-27 03:59:02 +00:00