Daniel James
e58370b4ff
Move emplace before emplace_impl in equivalent.hpp
2016-08-17 12:08:15 +01:00
Daniel James
e92f7d86c1
Remove array_constructor.
...
I was using SFINAE for everything because some old compilers had issues.
But that's hopefully in the distant past now.
2016-08-14 20:55:40 +01:00
Daniel James
93a33ba15f
Remove a couple of unneeded includes.
2016-08-14 20:55:40 +01:00
Daniel James
ad353c8e3d
Move some of the includes up into allocate.hpp
2016-08-14 20:55:40 +01:00
Daniel James
09717ffca4
Remove a few unnecessary internal includes.
2016-08-14 20:55:40 +01:00
Daniel James
ce4b840299
Map/set details types in individual headers.
2016-08-14 20:55:40 +01:00
Daniel James
5a8df0ebe4
Hopefully a bit more readable.
2016-08-14 20:55:40 +01:00
Daniel James
6029d1cfd0
Trim down node_tmp code.
2016-08-14 20:55:40 +01:00
Daniel James
3fe46a1769
Cleaner emplace_impl in equivalent.
2016-08-14 20:55:40 +01:00
Daniel James
5490bcfe95
Remove node_tmp overload of add_node.
2016-08-14 20:55:40 +01:00
Daniel James
078c562b6c
Pull some common code into a function.
2016-08-14 20:55:40 +01:00
Daniel James
88612a8be4
Less faffing around with node_constructor.
2016-08-14 20:55:40 +01:00
Daniel James
37a6903831
Move node construction into allocate.hpp
2016-08-14 20:55:40 +01:00
Daniel James
8017d9e684
Change how node construction works.
...
Split node_constructor into two classes, one for constructing a node
without a value, and then another for holding it once the value is
constructed.
Do the work of constructing values in convenience functions in
allocate.hpp (construct_value_generic, construct_value, construct_pair).
2016-08-14 20:55:40 +01:00
Daniel James
609ae6cb4e
Expand out fill_buckets.
2016-08-14 20:55:40 +01:00
Daniel James
7b8e3d01de
Use argument SFINAE instead of return SFINAE
2016-06-03 00:00:51 +01:00
Daniel James
b4a3c6f460
Fix exception safety in assignment for multimap/multiset.
...
The assignment code seemed like a bit of a premature optimization, I
replaced it with a slightly slower but much simpler implementation.
2016-05-30 15:02:04 +01:00
Daniel James
3f42a56bae
Remove old deprecated warning.
2016-05-26 09:25:10 +01:00
Daniel James
144a0c1791
Remove BOOST_NO_STD_DISTANCE workaround.
2016-05-26 09:24:25 +01:00
Daniel James
cc2b1a1ef1
Stop using deprecated boost::iterator.
2016-05-26 09:24:21 +01:00
Zoey Greer
3a507b4e39
Bounds-check after arithmetic is complete
...
double_to_size can return std::numeric_limits<size_t>max(), so we cannot add 1 to the return value of double_to_size. That addition should be done while still working with a double, as can be seen being done on line 850 of this file.
This was uncovered by Coverity, and addresses Coverity issues CID13443 and CID12664
2014-12-08 16:38:38 -05:00
Daniel James
8ccde2e5a1
Move the allocators after copying the hash functions.
...
Just in case the hash functions throw.
2014-11-09 23:44:16 +00:00
Daniel James
31211a607f
Remove assertion that used moved allocator. Fixes #10777 .
2014-11-09 23:35:35 +00:00
Adam Wulkiewicz
1d8855da27
Remove template patameters from friend declarations in interator<>.
2014-11-09 13:36:27 +01:00
Daniel James
0cedaf7ad6
Rename iterator typedef to n_iterator.
2014-11-08 22:22:11 +00:00
Daniel James
b4795f414d
Remove unneeded ConstNodePointer template parameters.
2014-11-08 22:22:11 +00:00
Daniel James
a81c86a90e
Remove use of operator&.
...
Also reactivate operator& for minimal test classes. Apparently I
disabled them because of a problem in a type trait, but I'm not seeing
that now. Maybe it will appear on other compilers.
2014-10-26 22:21:12 +00:00
Daniel James
99985bb1b2
Fix pointer types in iterators.
...
https://svn.boost.org/trac/boost/ticket/10672
2014-10-22 22:03:32 +01:00
Zoey Greer
8c5aa5086d
Initialize data_ in value_base default constructor
...
This means data_ should get initialized in the default constructor for boost::unordered::detail::unique_node (and any other inheritors), as this constructor will be called there.
This uninitialized data member was reported by Coverity (CID 49445), which unfortunately does not seem to have any convenient way to publicly, globally address issues.
2014-10-22 21:27:27 +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
2f6b81d8c1
Rename iterator typedef to n_iterator.
2014-08-19 16:41:10 +01:00
Daniel James
e1b39bbbfb
Combine some of the headers.
2014-08-19 16:41:10 +01:00
Daniel James
2f5d98a0cd
Don't use allocator to construct/destroy anything other than elements.
...
As specified in 23.2.1.3.
2014-07-12 19:12:46 +01:00
Daniel James
2216c987a0
Fixed direct use of allocator.
2014-07-11 09:13:47 +01:00
Daniel James
86d4d21250
Make value_base a member of pointer nodes.
2014-07-11 08:40:07 +01:00
Daniel James
99fdce0b4d
Fix policy typedefs.
2014-02-24 16:54:12 +00:00
Daniel James
57819d1dd9
Always use prime policy for integers. Fixes trac #9282 .
2014-02-23 10:16:14 +00:00
Daniel James
94071cc6e8
Clean up warnings. Fixes trac #9377 .
2014-01-26 22:57:24 +00:00
Daniel James
239453bead
Fix unordered on Sun 5.12 compiler. Refs #9424 .
...
[SVN r86792]
2013-11-23 11:43:19 +00: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
6f3dee13a8
Extend the Visual C++ workaround to 3 parameters.
...
To avoid collision with piecewise construction.
[SVN r86506]
2013-10-28 20:32:52 +00:00
Daniel James
7f14796ba4
Try to work around Visual C++'s variadic overload bug.
...
Possibly too late for the release.
[SVN r86482]
2013-10-27 17:58:09 +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
de0366105c
Avoid Visual C++ warning.
...
Avoiding:
warning C4127: conditional expression is constant
[SVN r85281]
2013-08-10 13:09:28 +00:00
Daniel James
3508ceaa58
Avoid exposing functions via ADL.
...
I'd put the iterators in their own namespace so that they wouldn't pick
up functions in detail via ADL, but I forgot that their template
parameters would cause that to happen anyway. The simplest way to fix
that for now is just to stuff the problematic functions into a
sub-namespace, so that they're no longer exposed.
[SVN r85280]
2013-08-10 13:09:08 +00:00
Daniel James
29660f9c4d
Remove unused typedef. Refs #8874 .
...
[SVN r85245]
2013-08-08 20:28:53 +00:00
Daniel James
52b42b4e48
Fix unused variable warning. Refs #8851 .
...
Bit annoying that `boost::ignore_unused_variable_warning` is in
`<boost/concept_check.hpp>`.
[SVN r85244]
2013-08-08 20:27:40 +00:00