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
Daniel James
e4a00980f8
Commented out noexcept for move assignment
2017-04-20 22:59:00 +01:00
Daniel James
af94e6a40e
Reorder the constructors to match the draft standard
...
In order to make it easier to check against the standard. This includes
collapsing some of the input iterator overloads into one constructor.
2017-04-20 22:59: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
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
5d98f3d0f0
Noexcept specs for swap free functions
2017-04-15 17:35:08 +01:00
Daniel James
4aa74e5feb
Merge between set/multiset and map/multimap
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
c0b72d97b3
Stricter about rebinding the allocator
2017-02-23 20:14:27 +00:00
Daniel James
bf5ef9824d
Reformat with clang-format
2017-02-19 13:05:17 +00:00
Daniel James
e3f534a148
Allocator aware constructors
2016-10-23 13:33:25 +01:00
Daniel James
1bcd5b0003
Make no argument constructor implicit
2016-10-23 13:32:52 +01:00
Daniel James
e986b70981
Stricter iterator types
2016-10-22 10:04:36 +01:00
Daniel James
9772c01161
Replace several uses of iterators with node pointers.
...
Which is to some extent going in circles, as this is how the containers
were originally implemented. But I think this is cleaner. It also fixes
a minor problem where the internal and external iterator types are
different for some containers, as the external iterators are all const.
2016-10-22 10:04:36 +01:00
Daniel James
d14c1dec59
Revert "Allocator aware constructors."
...
This reverts commit b00bc15c3e
.
I messed that up a bit, will get back to it later.
2016-10-03 20:58:15 +01:00
Daniel James
b00bc15c3e
Allocator aware constructors.
2016-10-02 17:56:01 +01:00
Daniel James
cae72eec2f
Insert/emplace with hint.
2016-08-17 12:08:15 +01:00
Daniel James
ce4b840299
Map/set details types in individual headers.
2016-08-14 20:55:40 +01:00
Daniel James
b1232d8061
Revert some changes so that I can merge to master.
...
Revert "Rename iterator typedef to n_iterator." and "Combine some of the
headers."
This reverts commits: 2f6b81d8c1
and
e1b39bbbfb
.
2014-10-22 21:24:36 +01:00
Daniel James
e1b39bbbfb
Combine some of the headers.
2014-08-19 16:41:10 +01:00
Daniel James
ddab816ed7
Use BOOST_HAS_PRAGMA_ONCE
.
...
Remembering to first include config, so that it'll actually be defined.
[SVN r86726]
2013-11-16 20:13:24 +00:00
Daniel James
cfb4a9d254
Revert attempted work around for Visual C++.
...
[SVN r86478]
2013-10-27 13:14:12 +00:00
Daniel James
621c1523c0
Fix potential msvc 12 workaround.
...
[SVN r86433]
2013-10-25 22:21:51 +00:00
Daniel James
b4d62e4670
Attempt to work around Visual C++ initializer list overload bug.
...
I'm hoping that these templated initializer lists will be considered a better
overload than the others. I have no idea if it will actually work, this is a
real shot in the dark.
The enable_if checks should probably be for implicit conversion, there might
be a chance this could override a valid call when there's an explicit
conversion.
[SVN r86419]
2013-10-24 18:11:35 +00:00
Stephen Kelly
3aa91346ea
Remove obsolete MSVC check from pragma guard
...
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq
is now clean.
[SVN r85952]
2013-09-26 13:02:51 +00:00
Daniel James
1a067034c1
Add conditional noexcept
for move constructors.
...
Also added `noexcept` for destructors because of a gcc bug, see:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56191
Found via:
http://stackoverflow.com/questions/15721544/destructors-and-noexcept
[SVN r84373]
2013-05-19 14:30:12 +00:00
Daniel James
44f61e5878
Add BOOST_NOEXCEPT to unordered container methods.
...
I haven't done the iterators yet.
[SVN r84253]
2013-05-12 14:34:45 +00:00