鉴于这一守则:
#include <iostream>
#include <functional>
template<typename T>
void f(T t1, T t2) { std::cout << t1 << " " << t2 << std::endl; }
template<typename...Ts>
void g(Ts... ts) { f(ts...); }
int main() {
auto f = std::bind(g<int, int>, 1, 2);
f();
return 0;
}有没有办法跳过g在std::bind(g<int, int>, 1, 2)中的模板类型规范?
如果没有,至少可以只指定一次类型吗?即std::bind(g<int>, 1, 2)
这是一个活版。
发布于 2016-11-18 10:32:33
我不确定是否可以使用bind,但是您可以使用lambda获得相同的功能,并且不需要显式的模板params:
auto f = []{
g(1, 2);
};https://stackoverflow.com/questions/40674664
复制相似问题