iterator, classe imbriquée, et template
Bonjour,
je suis face à un problème de compilation, et je n'ai pas réussi à trouver d'informations utiles sur ce site ou sur le net.
Globalement, mon problème est donné par ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include <list>
using namespace std;
template < typename T >
class A{
public:
class B{ };
void test(){
list<B>::iterator it; //ligne incriminée par le compilateur
}
}; |
À la compilation, g++ m'indique "error: expected ‘;’ before ‘it’"..
En particulier, j'ai pu remarquer que :
- en supprimant la ligne "template <typename T>", je compile sans souci
- en supprimant purement et simplement le "it", je compile sans souci
- en supprimant à la fois le "template <typename T>" et le "it", g++ m'indique "error: declaration does not declare anything"
Avez vous une explication sur ce qui peut être à l'origine de cette erreur de compilation (ou disposez vous de liens vers des documents qui pourraient me révéler la réponse) ?
Merci d'avance !