J'essaie d'utiliser Boost :: bind et std :: copy pour imprimer les valeurs dans une liste de listes. Évidemment, je pourrais utiliser des boucles, et je pourrais finir par le faire par souci de clarté, mais j'aimerais quand même savoir ce que je fais de mal ici.Boost :: bind et std :: copy
Voici la version distillée de mon code:
#include <boost/bind.hpp>
#include <iterator>
#include <algorithm>
#include <list>
#include <iostream>
using namespace std;
using namespace boost;
int main(int argc, char **argv){
list<int> a;
a.push_back(1);
list< list<int> > a_list;
a_list.push_back(a);
ostream_iterator<int> int_output(cout,"\n");
for_each(a_list.begin(),a_list.end(),
bind(copy,
bind<list<int>::iterator>(&list<int>::begin,_1),
bind<list<int>::iterator>(&list<int>::end,_1),
ref(int_output)
) //compiler error at this line
);
return 0;
}
L'erreur du compilateur commence
error: no matching function call to bind(<unresolved overloaded function type> .....
Je pense que cela signifie que bind ne peut pas comprendre ce que le Le type de retour pour la liaison externe doit être. Je ne le blâme pas, parce que je ne peux pas non plus. Des idées?
J'ai corrigé l'iostream et., Les erreurs. –
Fonctionne parfaitement. Merci! –