Dans mes souvenirs (je ne me souviens jamais de la syntaxe par coeur):
std::for_each(s.begin(), s.end(), boost::mem_fn(&Surface::Draw));
Sinon, sans boost, cela doit se faire avec std::mem_fun. (std::mem_fun_ref si tu venais à stocker des objets plutôt que des pointeurs)
Mais dès qu'il y a des arguments à passer, boost::bind (ou peut-être bien avec std::tr1::bind avec les SL en avance sur la définition du futur standard) devient vite intéressant
PS: est-ce bien nécessaire un std::set sur des pointeurs ? L'accès en O(ln n) n'est probablement jamais utilisé avec des pointeurs.
Partager