The idea is that I've got a thread pool class, and I'd like to be able to create new tasks using either pthread or boost::thread syntax. Obviously I could wrap up the pthread function and args inside a boost::thread compatible functor, but it won't in general have the same type as whatever functor the user might pass in.....