小编ErW*_*rWu的帖子

来自lambda的C++模板推导

我有一个函数,它需要两个std::functions作为参数.第二个函数的参数与第一个函数的结果具有相同的类型.

我写了一个这样的函数模板:

template<typename ResultType>
void examplFunction(std::function<ResultType()> func, std::function<void(ResultType)> func2) {
  auto x = func();
  func2(x);
}
Run Code Online (Sandbox Code Playgroud)

我可以用它来调用它:

void f() {
  examplFunction<int>([]() { return 1; },   //
                      [](int v) { std::cout << "result is " << v << std::endl; });
}
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱<int>at examplFunction<int>并让编译器推断出类型ResultType

c++ templates

27
推荐指数
2
解决办法
1730
查看次数

标签 统计

c++ ×1

templates ×1