
Edward Diener wrote:
I would be careful using FastDelegate as an adjunct to Boost function/bind. It is very dependent on knowledge of compiler member function pointer sizes and uses "hacks" based on that knowledge to achieve its speed. Boost should try to stay clear of low-level compiler dependent knowledge whenever it can, sacrificing a little extra speed for greater stability. Boost already has a lots of compiler-specific hacks and kludges (see MPL or TYPEOF/FOREACH). There's nothing inherently wrong in a good hack if it is protected by #ifdef's and there's a fallback implementation for unsupported platforms.
Of course if it is an optional choice for end-users, then it is more understandable but even then end-users should be duly notified of the issues involved. This is not in any way a putdown of FastDelegate but Boost function/bind is richer in functionality and therefore pays the price of being slower. Of course speed is important but not if it means less stability of implementation. SBO already gives 10x speed boost to Boost.bind :) It's performance is quite acceptable now.
-- With respect, Alex Besogonov (cyberax@elewise.com)