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);
。模板类型规范实际上已经过时了。:-)