C++ C++;11有界方法签名简化
鉴于此代码:C++ C++;11有界方法签名简化,c++,c++11,variadic-functions,C++,C++11,Variadic Functions,鉴于此代码: #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
#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;
}
#包括
#包括
模板
void f(T t1,T t2){std::cout我不确定是否可以使用bind,但您可以使用lambda获得相同的功能,并且不需要显式模板参数:
auto f = []{
g(1, 2);
};
当然。我一直坚持要正确绑定,但我并不特别需要它。lambda很好用。谢谢!它没有太大变化,但你可以使用std::bind(static_cast(g),1,2);
。模板类型规范实际上已经过时了。:-)