Bonjour,
J’essaye de coder une fonction qui affiche tous les éléments d’un conteneur séquentiel.
J’utilise les template, mais je ne comprends pas pourquoi je dois ajouter typename au début de la ligne 10 :
#include <iostream>
using std::cout;
using std::endl;
using std::ostream;
template <typename N> void print(const N& container, ostream& out = cout) {
N::const_iterator i;
for (i = container.begin(); i != container.end(); ++i) {
out << "elem : " << *i << endl;
}
out << "-----------" << endl;
}
int main() {
return 0;
}
Bien que l’erreur de compilation soit explicite, je ne comprends pas pourquoi elle est générée :
test.cpp:10:5: error: need ‘typename’ before ‘N:: const_iterator’ because ‘N’ is a dependent scope
Dans ma tête, ligne 10, le N::const_iterator est parfaitement défini, donc à quoi sert le typename ?
+0
-0