
And finally (sorry for the noise ;-) I would like to write instead of this
int main() { typedef boost::tuple< int(char) , double(int, char) , char(std::string) , void(std::string, std::string, std::string) > Signatures;
boost::overload<Signatures> f;
f.set<0>(&foo1); f.set<1>(&foo2); f.set<2>(&foo3); f.set<3>(&foo4);
Something like ?? type_of ?? f = get_overload(foo1, foo2, foo3, foo4); where 'get_overload' is something along the lines of: template <typename T1, typename T2, typename T3, typename T4> inline overload<tuple<T1, T2, T3, T4> > get_overload(T1 const& f1, T2 const& f2, T3 const& f3, T4 const& f4) { typedef overload<tuple<T1, T2, T3, T4> > F; return F(f1, f2, f3, f4); // well, overload c'tor is still to define ;-) } So to avoid the user to specify the signatures for each function he wants to use. The problem is that I don't know what is the best way to define variable 'f', (type_of ?). There is a way to avoid user to type the signatures, given that he already has the functions (fooX) ? Thanks Marco