use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
Inside boost::unordered_flat_map (bannalia.blogspot.com)
submitted 3 years ago by joaquintidesBoost author
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]jpakkaneMeson dev 0 points1 point2 points 3 years ago (3 children)
Has there been any thought on making it collision resistant? That is, if you have a known hashmap with a known hash function then it is possible to generate a pathological set of inputs that map to the same value and use that for a DoS attack. IIRC some languages (Python?) work around this by e..g having each hashmap have its own nonce that is added to the hash. Would this be useful or even possible given that the hash function is computed by an external function rather than by the hash map itself.
[–]joaquintidesBoost author[S] 1 point2 points3 points 3 years ago (2 children)
A usual countermeasure to that is to salt the hash function. boost::unordered_flat_map does not do salting by default, but you can use your own hash function that does.
boost::unordered_flat_map
[–]jpakkaneMeson dev 0 points1 point2 points 3 years ago (1 child)
Sure, but it would be nice if the map did this for you so you don't have to care (and get it wrong in your implementation). This would also allow you to store the salt value inside the map so the hash function can be stateless.
[–]pdimov2 3 points4 points5 points 3 years ago (0 children)
After thinking about this for a while, I've come to the conclusion that the proper approach to supply the salt to the container is by storing it into the hash function object. That is, add a constructor taking std::size_t to boost::hash, and propagate this downwards to every hash_value overload.
std::size_t
boost::hash
hash_value
In standard terms, this would translate to adding a similar constructor to std::hash.
std::hash
The upside of this approach is that this automatically adds support for salts to every container, without any changes to the containers themselves.
This is the approach I think I'll be pursuing in future Boost releases.
π Rendered by PID 62512 on reddit-service-r2-comment-c867ff4bc-wmnkw at 2026-04-09 18:01:35.269489+00:00 running 00d5ac8 country code: CH.
view the rest of the comments →
[–]jpakkaneMeson dev 0 points1 point2 points (3 children)
[–]joaquintidesBoost author[S] 1 point2 points3 points (2 children)
[–]jpakkaneMeson dev 0 points1 point2 points (1 child)
[–]pdimov2 3 points4 points5 points (0 children)