#include <iostream>
void padd(int a, int b) { std::cout << a + b << std::endl; }
void psub(int a, int b) { std::cout << a - b << std::endl; }
template <??? op>
class Foo {
public:
template<typename... Arguments>
void execute(Arguments... args) {
op(args ...);
}
};
int main() {
auto f1 = Foo<padd>();
f1.execute(5, 6); // ideally would print 11
auto f2 = Foo<psub>();
f2.execute(5, 6); // ideally would print -1
return 0;
}
我试图弄清楚如何将函数(以及,如果可能的话,模板函数)绑定为 C++ 中的模板参数。
就目前而言,我不知道这是否可能。
这里的一个关键是函数签名不能保证是相似的。
编辑:感谢@sehe 和@Potatoswatter,我目前的解决方案是:http: //ideone.com/0jcbUi。会在适当的时候写出答案。