
Gordon Woodhull wrote
On Jan 31, 2012, at 7:23 PM, Lorenzo Caminiti <lorcaminiti@> wrote:
Just the case that you have a bunch of functions (function pointers, function references, and monomorphic functors) with different names and you want to combine them into an API with a single overloaded function name.
I think this will be generally useful.
I wonder if you have thought about the case where the source funcs are polymorphic? Can this be supported using the same technique or does it require some metaprogramming magic?
I don't think it is possible to handle polymorphic functions because overloaded_function keeps a copy of the function (pointer, reference, or object) into a member of type boost::function<signature> (then boost::function is called within the overloaded_function operator() ). If `signature` contains a generic template parameter type T, I can't form a proper boost::function<signature> type to hold a copy of the function when overloaded_function is constructed... I will spend more time thinking and experimenting with this. I will post a code example illustrating the exact issue if indeed I cannot support polymorphic functions. Thanks. --Lorenzo -- View this message in context: http://boost.2283326.n4.nabble.com/functional-adding-overload-tp4297850p4361... Sent from the Boost - Dev mailing list archive at Nabble.com.