D'une manière générale, il n'est pas nécessaire de préciser explicitement la valeur des variables template que le compilateur peut déterminer tout seul (autrement dit, sans qu'il y ait d'ambiguïté).
Je viens réellement d'apprendre qqch. Je pensais qu'on pouvait effectivement ne pas spécifier les tempalte quand on avait des paramètres template par défaut.
Mais y a pas de paramètres par défaut dans cette fonction bind.
Mais dans ma distribution, quand je fais :
std::bind<int&>(std::get<0>, UnePaire0);
j'ai comme erreur:
1>------ Build started: Project: Proj1, Configuration: Debug Win32 ------
1> src1.cpp
1>c:\users\visual studio 2010\projects\proj1\proj1\src1.cpp(77): error C2664: 'std::tr1::_Bind_fty<_Fty,_Ret,_BindN> std::tr1::bind<int&,std::pair<_Ty1,_Ty2>>(_Fty,_Arg0)' : cannot convert parameter 1 from 'overloaded-function' to 'int &'
1> with
1> [
1> _Fty=int &,
1> _Ret=std::tr1::_Notforced,
1> _BindN=std::tr1::_Bind1<std::tr1::_Callable_obj<int &,false>,std::pair<int,double>>,
1> _Ty1=int,
1> _Ty2=double,
1> _Arg0=std::pair<int,double>
1> ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Partager