Je dois passer l'adresse d'un membre fn en prenant un argument à std :: for_each. Comment puis-je faire cela?C++ STL for_each devrait prendre un pointeur vers la fonction membre en prenant un argument
class A{
void load()
{
vector<int> vt(10,20);
std::for_each(vt.begin(), vt.end(), &A::print);
//It didnt work when i tried mem_fun1(&A::print)
}
void print(int a)
{
cout<<a;
}
};
Merci
Le problème est, mem_fun serait d'appliquer sur un cas, mais vt 'contient int's comme l'a par AraK. –
@Matthieu: Non, 'mem_fun' transforme la méthode en un foncteur binaire. bind1st prend un foncteur binaire et le transforme en un foncteur unaire. Dans ce cas, les arguments 'mem_fun' sont' A * 'et' int'; liant 'this' comme le premier argument laisse un foncteur unaire prenant un' int' comme prévu. – MSalters