Maxime Coste
04a96b059f
Use different hash algorithms for strings and file hashing
...
For hash map, using fnv1a is faster as it is a much simpler algorithm
we can afford to inline. For files murmur3 should win as it processes
bytes 4 by 4.
2024-02-06 21:57:17 +11:00
Maxime Coste
fb4cef5b61
Replace std::enable_if with requires
...
Introduce some concepts for enum and flags handling, goodbye and
thanks for all the fish std::enable_if.
2021-11-21 09:44:56 +11:00
Maxime Coste
346c78f5e0
Header and dependency cleanup
2019-01-24 21:22:20 +11:00
Maxime Coste
d486ea84e5
Constexprify various hash functions
2017-10-20 12:21:22 +08:00
Maxime Coste
1688332d12
Revert "Change HashCompatible trait to a variable template"
...
This reverts commit b58f72315c
.
Unfortunately gcc-5.1 handling of variable template partial
specializations is bugged.
2017-08-18 08:17:02 +07:00
Maxime Coste
b58f72315c
Change HashCompatible trait to a variable template
2017-08-14 11:54:38 +07:00
Maxime Coste
d37c3d175d
More uses of standard type traits aliases
2017-07-19 08:49:44 +02:00
Maxime Coste
7a79cbbc81
Migrate code to c++14
2017-07-19 08:47:14 +02:00
Maxime Coste
420373475e
Introduce a custom HashMap implementation along with a quick benchmark
2017-03-06 22:25:08 +00:00
Maxime Coste
7fd7098265
Add a combine_hash helper function
2015-06-20 15:04:31 +01:00
Maxime Coste
993e842fdf
Retreat ! go back to C++11 only code
...
This reverts commit b42de85031
.
2015-05-26 18:42:09 +01:00
Maxime Coste
b42de85031
Migrate code to c++14
2015-05-25 13:51:17 +01:00
Maxime Coste
0a2f2c2247
Use parameter pack to that the default hash_value is the worst match
2015-02-07 20:15:22 +00:00
Maxime Coste
340fc63f84
Improve code compatibility
2015-02-02 18:46:55 +00:00
Maxime Coste
ebecd60eb8
Rework hashing, use a more extensible framework similar to n3876 proposal
...
std::hash specialization is a pain to work with, stop using that, and
just specialize a 'size_t hash_value(const T&)' free function.
2014-12-16 18:57:19 +00:00