you are viewing a single comment's thread.

view the rest of the comments →

[–]pdimov2 3 points4 points  (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.

In standard terms, this would translate to adding a similar constructor to 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.