
Daniel James wrote:
I agree, but should it be available in Boost.Tr1? I guess that I could provide two different versions: boost::hash, which implements Peter's version, and std::tr1::hash, which is a strict implementation of the standard, but uses boost::hash_value as an implementation detail (so there isn't much code duplication).
The proposed enhancement of hash<> is supposed to be a conforming extension and something that I feel needs to be part of TR1.x. On the one hand, one might say that using our hash<> would make it hard for people to migrate to std::tr1, although boost::hash can still be used. But on the other hand, if we are to propose (again) an enhancement to tr1::hash, we need to have tested it in the field, or it wouldn't be accepted (again). Boost has always been about extensions.