
On 11/18/2004 07:00 AM, Daniel James wrote:
I've written a macro (the implementation is attached) for generating a function object for using overloaded functions with generic code such as the STL algorithms and boost::bind. A simple example of it's use: [snip] Any comments on this? Would anyone else find this useful? Also, has anyone done something similar? I'd be surprised if no one has, I always feel like I'm missing something when I'm doing this kind of thing.
The implementation is lacking in several ways - it doesn't work for non-const references, the return type is fixed, needs to deal with
I encountered the same problem with non-const references and the only work-around I found was to use mpl::vector<T0,T1,...,TN> as the 1st argument to the forwarding function. See: http://cvs.sourceforge.net/viewcvs.py/boost-sandbox/boost-sandbox/boost/managed_ptr/managed_ptr_ctor_forwarder.hpp?rev=1.1&view=auto and its use in overhead_referent_vals.hpp in that directory. Also, there's tests for 0 and 1 arguments in the corresponding libs/managed_ptr/test/smart_ptr_test.cpp. If the additional mpl::vector arg is not acceptable, maybe it could be curried away. I remember David Abraham had some currying code somewhere. Maybe it's in mpl also. HTH, Larry