Boost logo

Boost Users :

From: Ben Hutchings (ben.hutchings_at_[hidden])
Date: 2005-02-15 17:11:20


David Abrahams wrote:
> Ben Hutchings <ben.hutchings_at_[hidden]> writes:
>
>
>>Actually it can:
>>
>> struct D : C { void foo(std::string); };
>>
>> mem_fun mf = static_cast<mem_fun>(&D::foo);
>>
>>Not that I'd recommend doing that, as it invites type errors.
>
> Creating an instance by breaking the type system is cheating.

That doesn't break the type system. The result is well-defined; see
5.2.9/9 in the standard.

> Why not reinterpret_cast<mem_fun>("foo"), for that matter?

That's ill-formed.

> A simpler instance of the type is:
>
> mem_fun mf = 0;

Yes, and as you know that's what the type trait relies on.

Ben.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net