4 Dec
2017
4 Dec
'17
8:57 a.m.
On 4 December 2017 at 06:54, Richard Hodges via Boost
Adding a noexcept specification (i.e. making an interface more restrictive) sounds like a breaking change to me. Although it's the correct thing to do, surely anyone who has an override of hash_range in their code will be affected?
It isn't a member function, so there's no way to override it. The customization point is a call to hash_value via argument dependent lookup. The noexcept specifiers are going to be conditional on whether the iterators and hash functions are noexcept, so if an overload doesn't have a noexcept specification, then hash_range for that value is going to be effectively noexcept(false) and will still be compatible.