std::function<void(int)> f1; std::function<int(std::string,std::string)> f2; //and so on
但是,尽管有很多关于网络上的可变模板的信息,但我没有找到任何关于如何编写std :: function-like模板的文章,该模板将接受括号括号.任何人都可以解释语法及其局限性,至少指出现有的解释?
int foo(char a,double b)
那么它的类型是int(char,double).单个参数类型和返回类型的“解包”的一种方法是使用部分模板专门化.基本上,std :: function看起来像这样:
template <class T> struct function; // not defined template <class R,class... A> struct function<R (A...)> { // definition here };