Use nothrow move assignment for function objects, when available.
Originally I was going to use two different versions of hash_functions, but the recent discussion on binary compatibility persuaded me not to.
hash_functions