Étant donné ce code:C la simplification de la signature de 11 méthode liée
#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;
}
Est-il possible d'ignorer la spécification du type de modèle pour g
dans std::bind(g<int, int>, 1, 2)
?
Sinon, est-il au moins possible de spécifier le type une seule fois? c'est-à-dire std::bind(g<int>, 1, 2)
Voici un live version de ceci.
Il ne change pas beaucoup, mais vous pouvez utiliser 'std :: bind (static_cast (g), 1, 2);'. La spécification des types de modèles a disparu. :-) –
skypjack