From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-04-02 07:57:14


Daniel James wrote:
> Peter Dimov wrote:
>> * boost::hash derived from std::unary_function
>>
>> This introduces a completely unnecessary dependency on <functional>.
>> boost::hash only needs to define result_type and argument_type.
>
> I thought this was required by TR1. I'll happily remove it if isn't.

It's required; I just don't agree with the requirement, it's overly strict.
I prefer to view the standard wording as a shorthand notation for the
typedefs. User code should never depend on the inheritance relationship
between a function object and std::*nary_function... and neither should our
tests.

(There are other defects in TR1 along the same lines, but it's far too late
now to fix them.)