是否可以让编译器推断出模板化结构/类的类型?

时间:2014-09-06 23:33:27

标签: c++ c++11

#include <iostream>
#include <functional>
template<typename T,typename R>
struct match_struct{
  T t;
  std::function<R(T)> f;
};

template<typename T,typename R>
match_struct<T,R> match(T t,std::function<R(T)>f) {
  return match_struct<T,R>{t,f};
}

int main(int argc, char *argv[])
{
  auto m = match<int,int>(10, [](int i){ return i;});
  return 0;
}

我知道当我想创建一个struct / class时,我必须明确指定类型。我认为我可以创建一个模板化的函数来自动推断类型。

这样我就可以写

auto m = match(10, [](int i){ return i;});

不幸的是,这不起作用。

有解决方法吗?那么我不必明确指定类型吗?

0 个答案:

没有答案