Bonjour,

Mon précédent problème étant résolu, j’ai donc continué mon programme. Malheureusement les ennuis ont continué : je n’arrive pas à déclarer mes itérateurs.

Voici un extrait de la classe concernée. C’est une classe template qui possède des conteneurs de la STL : std::list et std::set.

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
template <class SubEvent, class SubSystemCore>
class System : public ISystem<SubEvent, SubSystemCore>
{
    // ...
 
    private:
        // Delete all registrations
        void DeleteAllRegistrations();
 
 
    // ...
 
 
        // Registered Systems
        std::list<ISystem<SubEvent, SubSystemCore> *> m_RegisteredSystems;
 
        //
        std::set<ISystem<SubEvent, SubSystemCore> *> m_Systems;
};
Jusqu’ici tout va bien. Je n’ai aucun problème à utiliser ces conteneurs, pourtant je n’arrive pas à accéder à leur itérateur. L’erreur intervient dès la déclaration de celui-ci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class SubEvent, class SubSystemCore>
void System<SubEvent, SubSystemCore>::DeleteAllRegistrations()
{
    std::set<ISystem<SubEvent, SubSystemCore> *>::iterator i;
 
    //
    for(i = m_Systems.begin() ; i != m_Systems.end() ; i++)
    {
        (*i)->Unregister(this);
    }
 
    //
    m_Systems.clear();
}
Voici le code complet. Si quelqu’un voit l’erreur, je serai ravi de la connaitre.

Merci.