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
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
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
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
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
Daniel James
0645700b33
Separate out some of the node manipulation code
2017-02-27 03:59:02 +00:00
Daniel James
d89aadc56c
Implement merge
2017-02-27 03:59:02 +00:00
Daniel James
21a24d6cd7
Support node_handle
2017-02-27 03:59:02 +00:00
Daniel James
9c4c3a754a
Const methods in value_base.
2017-02-27 03:59:02 +00:00
Daniel James
5f5f8ef1e4
Implement try_emplace
2017-02-27 03:59:02 +00:00
Daniel James
958d206bb6
Implement insert_or_assign.
2017-02-27 03:59:02 +00:00
Daniel James
8fa93cc55b
Update some comments for recent versions of standard
2017-02-23 20:14:27 +00:00
Daniel James
79cf0c4bfb
pair_traits for getting pair types without instantiating.
...
I was having some problems in an abandoned prototype with incomplete
types, I'm not sure I will have this problem now, but I'm keeping this
anyway, as it seems useful.
2017-02-23 20:14:27 +00:00
Daniel James
81aefde94e
Use const_key_type internally
2017-02-23 20:14:27 +00:00
Daniel James
96602df8a8
Remove const volatile when picking bucket policy
...
Could possibly do this in a more portable manner by using some sort of
function overload.
2017-02-23 20:14:27 +00:00
Daniel James
c0b72d97b3
Stricter about rebinding the allocator
2017-02-23 20:14:27 +00:00
Daniel James
ddee1b686a
Move config and declaration to the start of implementataion.hpp
2017-02-23 20:14:26 +00:00
Daniel James
2231586033
Remove duplicate includes
2017-02-23 20:14:26 +00:00
Daniel James
13063abce5
Move friend function outside of class
...
The use of std::pair was causing issues with the sun compiler.
2017-02-23 20:10:40 +00:00
Daniel James
bf5ef9824d
Reformat with clang-format
2017-02-19 13:05:17 +00:00
Daniel James
01dcd36c41
Add _clang-format file
2017-02-19 13:05:17 +00:00
Daniel James
b2f2fdc2f3
Prevent clang-format sorting some test includes
2017-02-19 13:05:17 +00:00
Daniel James
f2af10c746
Protect preprocess sequence from clang format
2017-02-19 13:05:17 +00:00
Daniel James
3bf664ad31
Add a missing header
2017-02-19 13:05:17 +00:00
Daniel James
67ab88b064
Combine most of the detail headers into a single header
2017-02-19 13:05:17 +00:00
Daniel James
67f1f65174
Linearise the detail includes
...
The current organisation of the headers has been making less and less
sense over the years, so to simplify things, I'm just going to combine
them into a single header. This change will make it easier to do that.
2017-02-19 13:05:17 +00:00
Daniel James
57cc6d4bac
Fix exception safety when constructing pairs
2017-01-01 18:35:50 +00:00