У меня есть функция, которая принимает две аргумента std::function
. Параметр второй функции имеет тот же тип, что и результат первого.
Я написал шаблон функции следующим образом:
template<typename ResultType>
void examplFunction(std::function<ResultType()> func, std::function<void(ResultType)> func2) {
auto x = func();
func2(x);
}
Я могу позвонить:
void f() {
examplFunction<int>([]() { return 1; }, //
[](int v) { std::cout << "result is " << v << std::endl; });
}
Есть ли способ избавиться от <int>
на examplFunction<int>
и позволить компилятору вывести тип ResultType
?