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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !