Je souhaiterais utiliser la fonction copy pour afficher une liste de listes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#include <iostream>
#include <iterator>
#include <list>
#include <algorithm>
 
using namespace std;
 
typedef list<int> IntList;
typedef list<IntList> ListList;
 
ostream& operator<<(ostream& os, const IntList& l) {
	copy(l.begin(),l.end(),ostream_iterator<int>(cout,"\t"));
	return os;
}
 
int main() {
	ListList l(2,IntList(2));
	copy(l.begin(),l.end(),ostream_iterator<IntList>(cout,"\n")); // Erreur de compilation
	return 0;
}
Compilé avec g++ 3.4.2 sous Windows XP, le code ci-dessus génère une masse de messages d'erreurs (en substance : " no match for 'operator<<' " au niveau de l'opérateur 'operator=' de ostream_iterator).

Qu'est-ce qui ne va pas ?