Вы можете использовать boost::function<...>::result_type
и boost::function<...>::arg1_type
, boost::function<...>::arg2_type
и т.д ...
См. Справочную страницу .
Если вы хотите всекак тип функции, вы можете использовать функции синтеза в Boost.FunctionTypes.