Daniel James
2fed2fbd9e
Unordered: Hashing policy for 64 bit computers.
...
[SVN r77066]
2012-02-18 15:47:59 +00:00
Daniel James
2665090568
Unordered: Use Boost.Move for variadic forwarding.
...
[SVN r76331]
2012-01-06 08:36:43 +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
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
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
2ecfa0e08c
Unordered: Fix unnecessary_copy_tests failures.
...
[SVN r73894]
2011-08-18 19:29:02 +00:00
Daniel James
5f622027cd
Unordered: Implement allocator propagation on assignment.
...
It's pretty messy because I'm trying to avoid swapping allocators in
these cases. I'm also not sure of the exception requirements of
allocator swap and assignment.
[SVN r73756]
2011-08-14 18:53:29 +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
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
daad24388c
Fix iterator insert bug in unordered_set/unordered_map.
...
[SVN r66136]
2010-10-21 20:23:37 +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
dfaa61b666
Another inline.
...
[SVN r61872]
2010-05-09 07:24:47 +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
71096f4d26
Formatting changes, mostly to fit within 80 characters.
...
Also, some C casts converted to static_cast.
[SVN r58692]
2010-01-04 22:49:39 +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
ae0c97a77a
Make sure inserting from a range of types other than the value type is better tested.
...
[SVN r56562]
2009-10-03 16:42:20 +00:00
Daniel James
437a35feaa
Remove the emplace_hint implementation for unique containers as it isn't really used and seems to be causing sun 5.7 problems.
...
[SVN r56363]
2009-09-22 22:39:17 +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