Peter Dimov
0794cfec9e
Avoid -Wlong-long in mix64_policy
2022-02-09 07:13:27 +02:00
Peter Dimov
2f331b7a8b
Update mix64_policy to use Fibonacci hashing
2022-01-19 04:11:08 +02:00
Peter Dimov
d96d5335b4
Update mix32_policy to use Fibonacci hashing
2022-01-19 04:01:46 +02:00
Peter Dimov
2751b3515b
Add bcount_log2_ to table, pass it to the policy
2022-01-19 02:33:37 +02:00
Peter Dimov
bf86730a62
Add mix32_policy
2022-01-18 21:31:53 +02:00
Peter Dimov
98494420c5
Add a BOOST_ASSERT to mix64_policy to check that the bucket_count is a power of two
2022-01-18 20:52:05 +02:00
Peter Dimov
7717ff01a1
Use bit_ceil and bit_floor in mix64_policy
2022-01-18 20:40:23 +02:00
Peter Dimov
d6576ed2f1
Remove the special case in pick_policy for integral types (refs #50 )
2022-01-18 19:25:32 +02:00
Christian Mazakas
9c07cf60a6
Deprecate table::erase_key_unique()
2021-12-23 13:12:52 -08:00
Christian Mazakas
ff4d25d454
Add transparent_non_iterable
type trait for usage in erase()
/ extract()
SFINAE
2021-12-21 09:27:00 -08:00
Christian Mazakas
85cb09ae6d
Add erase_key_equiv_impl()
member function
2021-12-21 09:27:00 -08:00
Christian Mazakas
d8fe1a17cc
Replace usage of compound is_transparent
type trait with singular usage of are_transparent
2021-12-17 09:53:16 -08:00
Christian Mazakas
1db53ba155
Update internal table to allocate on construction and when rehashing
2021-12-15 09:42:44 -08:00
LeonineKing1199
089d2db104
Remove traits detection mechanism
2021-12-08 14:04:04 -08:00
LeonineKing1199
fefb6ad4c4
Remove unnecessary expression test mechanisms
2021-12-08 13:59:11 -08:00
LeonineKing1199
05b795bc14
Remove unnecessary macro for determining which allocator_traits
implementation is being used
2021-12-08 10:06:01 -08:00
Peter Dimov
ff3f5067c8
Merge pull request #56 from LeonineKing1199/feature/allocator-traits
...
Replace internal implementation of `allocation_traits` with Core's
2021-12-08 01:23:02 +02:00
LeonineKing1199
5b8289c05a
Remove extraneous include of Boost.Container's allocator_traits
2021-12-07 10:49:39 -08:00
LeonineKing1199
a6b9fb285c
Replace internal implementation of allocation_traits
with Core's
2021-12-07 08:35:56 -08:00
LeonineKing1199
13cd5aa4ce
Implement initial draft of heterogeneous extract()
2021-12-06 13:06:05 -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
12977a50bc
Add hopefully helpful comment to the source
2021-12-03 08:41:42 -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
Peter Dimov
5e8b6a9e55
Add comment describing the origin of mix64_policy::apply_hash
2021-11-29 06:14:20 +02: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
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
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
f3476de893
Some explicit casts to avoid warnings on old GCC
2018-01-10 11:35:42 +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