Я пишу функцию шаблона, которая получает объект std::function
(сгенерировано путем вызова std::bind
с соответствующими аргументами). В этой функции я хотел бы определить тип возвращаемого значения этого объекта функции. Возможно ли это?Определение типа возврата std :: function
На самом деле, я хочу, чтобы функция шаблона возвращала тот же тип. Можете ли вы представить себе элегантный, основанный на стандартах способ достижения этой цели?
Что-то вроде:
template <typename T>
T::return_type functionObjWrapper(T functionObject) {
// ...
return functionObject();
}
Благодарности
'std :: bind' не возвращает' std :: function' – Barry
Нет, но возвращает возвращаемый объект, и этого достаточно для инициализации 'std :: function'. – MSalters