Les modèles et les classes imbriquées/structures

J'ai un conteneur simple :

template <class nodeType> list {
    public:
        struct node {
            nodeType info;
            node* next;
        };

    //...
};

Maintenant, il y a une fonction appelée _search qui recherche la liste et retourne une référence sur le nœud correspondant. Maintenant, quand je me réfère à la déclaration de type de la fonction, je pense qu'il devrait être list<nodeType>::node*. Est-ce exact? Quand je définis la fonction inline, ça fonctionne parfaitement:

template <class nodeType> list {
    public:
        struct node {
            nodeType info;
            node* next;
        };

        node* _search {
            node* temp;
            //search for the node
            return temp;
        }
};

Mais, si j'définir la fonction à l'extérieur de la classe,

template <class nodeType> list<nodeType>::node* list<nodeType>::_search() {
    //function
}

il ne fonctionne pas. Le compilateur génère un message d'erreur disant Expected constructor before list<nodeType>::_search ou quelque chose. L'erreur est quelque chose de semblable. Je n'ai pas une machine sur laquelle je puisse le tester actuellement.

Toute aide est sincèrement apprécié.

OriginalL'auteur Rohan Prabhu | 2009-11-07