Daniel James
31f3a10d33
Unordered: Tweak node_construct functions.
...
[SVN r80381]
2012-09-03 20:02:53 +00:00
Daniel James
73c269398a
Unordered: Generic copy/move implementation.
...
[SVN r80379]
2012-09-03 20:02:10 +00:00
Daniel James
7a4930f1a1
Unordered: Avoid unnecessary swapping in rehash and move.
...
[SVN r80378]
2012-09-03 20:01:50 +00:00
Daniel James
ff31c73970
Unordered: Go back to the old method for constructing nodes.
...
Reverts much of [78349]. Keeps the variadic construct.
[SVN r80219]
2012-08-25 21:51:24 +00:00
Daniel James
6932a2d571
Unordered: Fix using a C++03 allocator with C++11 compiler.
...
Because the nodes had an implicit constructor, the `has_construct` traits was
detecting that the nodes could be constructed by construction then copy, which
really wasn't wanted. Also add a check that nodes aren't been copy constructed
to make sure this doesn't happen again. Refs #7100 .
[SVN r79358]
2012-07-08 11:55:57 +00:00
Daniel James
39bafd7b10
Unordered: Reapply changes reverted in r78788.
...
[SVN r79163]
2012-06-28 20:58:56 +00:00
Daniel James
7158700502
Unordered: Revert unmerged changes in trunk.
...
So that I can fix issues in the beta.
[SVN r78788]
2012-06-01 11:03:22 +00:00
Daniel James
1eac47a275
Unordered: Use Boost.Move in a few more places.
...
Should be better for compilers with variadic parameters, but no rvalue
references. If such a thing ever exists.
[SVN r78536]
2012-05-21 22:15:33 +00:00
Daniel James
275b03e76b
Unordered: Avoid -Wshadow
warnings. Refs #6190 .
...
[SVN r78364]
2012-05-07 10:57:35 +00:00
Daniel James
995ef1efdb
Unordered: Use std::allocator_trait's variadic construct.
...
[SVN r78349]
2012-05-06 12:29:24 +00:00
Daniel James
626bb48013
Unordered: Use iterators in more of the implementation methods.
...
[SVN r77834]
2012-04-08 15:30:14 +00:00
Daniel James
e64f82ed03
Unordered: Fix equality for multimap/multiset.
...
[SVN r77833]
2012-04-08 15:29:49 +00:00
Daniel James
4e759b4444
Unordered: Call policy functions as static functions.
...
[SVN r77831]
2012-04-08 15:28:26 +00:00
Daniel James
2fed2fbd9e
Unordered: Hashing policy for 64 bit computers.
...
[SVN r77066]
2012-02-18 15:47:59 +00:00
Daniel James
a61e876300
Unordered: emplace
cleanup.
...
- Always construct iterator in detail for consistency.
- Move 0-argument emplace to start of overloads.
[SVN r75744]
2011-11-30 08:21:58 +00:00
Daniel James
2507fd78e3
Unordered: Move rebind into 'types' classes.
...
Makes the types in error messages a tad bit nicer.
[SVN r75742]
2011-11-30 08:21:04 +00:00
Daniel James
a5dcc9dab0
Unordered: Return iterators in pairs instead of node_pointers.
...
It looks like the current version doesn't work with a correct
implementation of C++11 pairs since they don't use explicit conversions.
So just return the correct type in the first place.
Should probably be using iterators in other places as well. I was using
node_pointers everywhere due to some legacy from older versions.
[SVN r75158]
2011-10-28 17:42:51 +00:00
Daniel James
f304e56818
Unordered: Stop using void_pointer.
...
Was breaking for allocators that don't have good enough support for
void_pointer. Which I suspect is pretty common.
[SVN r74800]
2011-10-08 12:17:27 +00:00
Daniel James
3d7b6c64b5
Unordered: some more formatting + namespaces
...
[SVN r74767]
2011-10-06 21:31:25 +00:00
Daniel James
3a909c8747
Unordered: Better emplace_args implementation.
...
And some misc. cleanup.
[SVN r74750]
2011-10-06 08:03:25 +00:00
Daniel James
ad38ecf6d8
Unordered: Remove some std::cout debugging. Oops.
...
[SVN r74746]
2011-10-05 22:05:52 +00:00
Daniel James
dac1dc5837
Unordered: Reorganization to use void pointers and other things.
...
Helps allocators which can't use incomplete pointers, and avoid using
base pointers where that might not be possible. And some other
reorganization. Storing arguments to emplace in a structure when
variadic template parameters aren't available. Changed some of the odd
design for working with older compilers.
[SVN r74742]
2011-10-05 19:45:14 +00:00
Daniel James
bd79d02049
Unordered: Remove unreachable code.
...
[SVN r74218]
2011-09-04 11:58:56 +00:00
Daniel James
965e25c989
Unordered: Try to fix issues with moving non-class types.
...
[SVN r74193]
2011-09-02 08:28:52 +00:00
Daniel James
a3ffd4a7c9
Unordered: Remove BOOST_DEDUCED_TYPENAME
...
[SVN r74192]
2011-09-02 08:28:19 +00:00
Daniel James
fd1aec2998
Unordered: Add option to use old equality implementation for backwards compatability.
...
[SVN r74180]
2011-08-31 22:23:01 +00:00
Daniel James
0e5930b8dc
Unordred: Implement propagate_on_container_swap.
...
[SVN r73680]
2011-08-11 21:18:43 +00:00
Daniel James
eacca89d4e
Unordered: Starting to implement allocator propagation.
...
[SVN r73679]
2011-08-11 21:18:19 +00:00
Daniel James
99e6bef4ef
Unordered: Starting to support allocator_traits.
...
[SVN r73678]
2011-08-11 21:17:57 +00:00
Daniel James
f0517463a5
Unordered: Better std::forward/move configuration.
...
[SVN r73592]
2011-08-07 08:55:28 +00:00
Daniel James
20e923ba0d
Unordered: Move the implementation into a namespace.
...
Although it typically won't prevent ADL, because of boost::hash.
[SVN r72391]
2011-06-04 16:17:07 +00:00
Daniel James
a40422fada
Unordered: remove use of the 'or' keyword.
...
[SVN r71602]
2011-04-29 11:03:29 +00:00
Daniel James
b1912055a9
Unordered: Fix some errors in the equality tests.
...
[SVN r71363]
2011-04-17 21:27:38 +00:00
Daniel James
e8714d79b2
Unordered: Implement C++0x equality.
...
[SVN r71354]
2011-04-17 16:23:25 +00:00
Daniel James
140e8852e8
Unordered: fix some gcc issues.
...
[SVN r71346]
2011-04-17 00:31:35 +00:00
Daniel James
547e141166
Unordered: Overhaul the implementation.
...
Store nodes in a single linked list, with hash values so that their
buckets can be found when needed. Iterators now only have to store a
pointer to the node and don't have to iterate over empty buckets to
reach the next node. This allows the container to meet the iterator
requirements - fixing the speed issues with `equal_range` and `erase`.
Also, define iterators in their own namespace, so that they don't
accidentally pull in detail functions via ADL.
I've simplified the code slightly by removing some of the special
cases for empty containers. Renamed a few things as well and other
minor changes that were made as I went along.
[SVN r71327]
2011-04-16 18:47:33 +00:00
Daniel James
5edc45349f
Revert changes for sun 5.9.
...
Nobody seems to be running the tests now.
[SVN r62117]
2010-05-21 07:06:33 +00:00
Daniel James
076e195cac
Define several methods inline.
...
Sun 5.9 was having some issues.
[SVN r61831]
2010-05-06 20:13:25 +00:00
Daniel James
71a8e56ae3
Move equivalent and unique hash tables into their own headers.
...
[SVN r61830]
2010-05-06 20:12:40 +00:00
Daniel James
df72c4886f
Support incomplete template parameters to unordered containers.
...
[SVN r57798]
2009-11-20 08:03:26 +00:00
Daniel James
26c72f9860
Use 'E' for key extractor, freeing 'K' for key.
...
[SVN r57797]
2009-11-20 08:02:48 +00:00
Daniel James
6bac25221a
Fix unordered for intel strict.
...
[SVN r57139]
2009-10-24 17:53:03 +00:00
Daniel James
8d4b503e56
Use normal emplace implementation for emplace_hint and insert with hint.
...
There's a bug in the emplace_hint implementation for unordered
containers with equivalent keys. Since my tests missed it, I'm just
going to use the normal emplace implementation until I write better
tests.
[SVN r57005]
2009-10-19 19:24:33 +00:00
Daniel James
fe3d612fe0
Clean up some unordered TODOs.
...
[SVN r56570]
2009-10-04 10:37:36 +00:00
Daniel James
965c2ae89c
Slightly more consistent variable names. In detail 'n' is now always a node pointer.
...
[SVN r56346]
2009-09-21 21:17:19 +00:00
Daniel James
78b078f41d
Since all the compilers support out of line template members use them
...
and lots of other things.
[SVN r56329]
2009-09-20 21:55:15 +00:00