Commit Graph

617 Commits

Author SHA1 Message Date
LeonineKing1199
13cd5aa4ce Implement initial draft of heterogeneous extract() 2021-12-06 13:06:05 -08:00
LeonineKing1199
e4d0693eb9 Fix erroneous placement of heterogeneous erase() from multimap to map 2021-12-03 10:08:30 -08:00
LeonineKing1199
4a42c93897 Fix erroneous usage of table::hash() impl which implicitly copy-constructs the const_key_type 2021-12-03 10:07:57 -08:00
LeonineKing1199
8b438dea76 Use erase_key_unique_impl() directly so that eventually erase_unique() can be deprecated 2021-12-03 08:48:20 -08:00
LeonineKing1199
12977a50bc Add hopefully helpful comment to the source 2021-12-03 08:41:42 -08:00
LeonineKing1199
33f84624ec Add initial draft of heterogeneous erase() 2021-12-02 15:59:12 -08:00
LeonineKing1199
f252480bee Add missing formatting 2021-12-02 15:44:02 -08:00
LeonineKing1199
c9df887c4c Add member function template erase_key_unique_impl for usage in heterogeneous lookups 2021-12-02 15:38:07 -08:00
LeonineKing1199
03edf7f4a8 Add member function template find_previous_node_impl so it can be used in heterogenous contexts 2021-12-02 15:30:17 -08:00
LeonineKing1199
13f40e4333 Implement heterogeneous equal_range() for unordered_map 2021-12-01 09:39:07 -08:00
LeonineKing1199
8f1fc75fdf Implement heterogeneous find() 2021-11-29 14:37:04 -08:00
Peter Dimov
5e8b6a9e55 Add comment describing the origin of mix64_policy::apply_hash 2021-11-29 06:14:20 +02:00
LeonineKing1199
fd0cab2ab8 Remove out-of-line defintion for transparent count() to hopefully appease msvc-9.0 2021-11-22 15:43:28 -08:00
LeonineKing1199
8ba710637a Remove detail::make_dependent in favor of an extra template parameter in is_transparetn 2021-11-22 13:29:41 -08:00
LeonineKing1199
59db6cf788 Add SFINAE to transparent count() overload in unordered_map 2021-11-22 11:16:04 -08:00
LeonineKing1199
f41b3e8295 Get initial prototype of transparent count() working 2021-11-19 15:29:57 -08:00
Peter Dimov
c8abaf32ee Merge pull request #40 from LeonineKing1199/sfinae-updates
Update SFINAE expressions to be in the return type
2021-11-19 04:32:06 +02:00
LeonineKing1199
7ccd62ba98 Update SFINAE expressions to be in the return type instead of a defaulted function parameter 2021-11-18 12:54:17 -08:00
LeonineKing1199
2d69c7a5ca Add missing const-qualification of operator== for internal optional implementation 2021-11-18 10:19:20 -08:00
LeonineKing1199
a97160cf57 Fix bug in has_construct by using std::declval 2021-08-29 12:13:56 -07:00
Edward Diener
887f1dc07c Change __BORLANDC__ to BOOST_BORLANDC and __CODEGEARC__ to BOOST_CODEGEARC, which are3defined in Boost config for the Embarcadero non-clang-based compilers. 2020-03-31 22:47:48 -04:00
Daniel James
e10fc0f93b Fix typo 2018-02-25 14:03:11 +00:00
Daniel James
09be9bae04 Use boost::is_nothrow_swappable, now that it's available everywhere 2018-01-27 09:38:19 +00:00
Daniel James
c01a8c4629 Oops, it's boost::to_address, no boost::to_pointer 2018-01-26 20:25:09 +00:00
Daniel James
ddf302fcc2 Use boost::to_pointer instead of pointer<..>::get
To get C++20 style recursive calls to `operator->`.
2018-01-26 18:59:16 +00:00
Daniel James
66533ace80 Add element_type to nodes, so that pointer_traits will work
Might be better to change the template signature of iterators, but that would
be a disruptive change to make at the moment.
2018-01-26 17:43:06 +00:00
Daniel James
ea599a66b7 Disable 'conditional expression is constant' on older Visual C++ 2018-01-23 15:40:58 +00:00
Daniel James
f3476de893 Some explicit casts to avoid warnings on old GCC 2018-01-10 11:35:42 +00:00
Daniel James
dea525b2b7 Suppress msvc waring "conditional expression is constant" 2018-01-10 11:35:22 +00:00
Daniel James
d55c9565ab No template arguments in BOOST_MOVABLE_BUT_NOT_COPYABLE
Was causing errors on Visual C++ 7.1.
2018-01-10 09:58:08 +00:00
Daniel James
00a4185cf1 Reformat 2018-01-08 10:58:09 +00:00
Daniel James
ea28a3f98e Fix conversion to bool warning 2018-01-08 10:57:28 +00:00
Daniel James
34e54b35e8 Manually handle assigning hash/equality functions 2018-01-06 12:53:37 +00:00
Daniel James
f12009fc61 operator= noexcept support 2018-01-05 17:54:44 +00:00
Daniel James
5854090dc7 Swap noexcept support
Not properly supported as we don't have is_nothrow_swappable yet.
2018-01-05 17:48:13 +00:00
Daniel James
7e28fdd45a Make the current function_pair public 2018-01-05 17:10:13 +00:00
Daniel James
7615fabc80 Rewrite node handles using a lightweight limited optional
Will try to use std::optional when available. Also using
allocator_traits::is_always_equal support.
2018-01-03 23:15:55 +00:00
Daniel James
be0acc575f Implement allocator_traits::is_always_equal 2018-01-03 20:55:40 +00:00
Daniel James
9d558b010d Reformat 2017-12-28 11:44:57 +00:00
Daniela Engert
64441d2b64 Inheriting std::iterator is deprecated in c++17.
Therefore get rid of all of that and replace inheritance by lifting std::iterator's members into the derived class.

Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-12-28 12:01:41 +01:00
Daniel James
92ce66be64 Rename 'bucket' variable to avoid shadow warning 2017-12-22 16:54:05 +00:00
Daniel James
15befe998e Rename table::get_bucket to get_bucket_pointer
All the other '*_bucket' methods return a bucket index.
2017-12-22 16:44:43 +00:00
Daniel James
b50e0d610f Initial implementation of template deduction guides 2017-12-19 12:56:51 +00:00
Daniel James
f99dee1917 Use predef for detecting piecewise construction
And detect it for recent dinkumware.
2017-12-19 12:11:36 +00:00
Daniel James
311e126ac4 Remove dependency on iterator 2017-12-03 18:58:52 +00:00
Daniel James
c037169e1a Update paths for headers moved from detail 2017-12-03 14:24:47 +00:00
Daniel James
978944fab2 Use same code for move constructing all containers
Copies the data layout from the source, so it doesn't need to hash anything.
2017-10-05 10:56:02 +01:00
Daniel James
705e69aefd Always call set_first_in_group
Probably don't need to, as we're using 0 for the first element in a group, but
it's quick so might as well.
2017-10-05 10:54:23 +01:00
Daniel James
e58081f6dc Drop some TODOs that are okay 2017-10-05 10:54:22 +01:00
Daniel James
4ac8a45a34 The max_load issue was fixed in the standard ages ago 2017-10-05 10:54:22 +01:00