Bonjour à tous
Voilà, j'ai quelques petits soucis, et la je commence vraiment à craquer !
Voici le bout de code incriminé :
#include <list>
using namespace std;
template<class Item>
class TASK_API ExtendedList : public std::list<Item*>
{
public:
class iterator : public std::list<Item*>::iterator
{
public:
inline iterator() : list<Item*>::iterator(){}
inline iterator(const list<Item*>::iterator& it) : list<Item*>::iterator(it){}
inline Item* operator->()
{
return *((list<Item*>::iterator)(*this));
}
friend class ExtendedList<Item>;
};
};
Le souci est le 2ème constructeur : inline iterator(const list<Item*>::iterator& it) : list<Item*>::iterator(it){}.
Ce code, compiler avec GCC, me fournit l'erreur suivante :
[ocde]
extendedlist.h:26: error: expected unqualified-id before '&' token
extendedlist.h:26: error: expected `,' or `...' before '&' token
extendedlist.h:26: error: ISO C++ forbids declaration of `parameter' with no type
[/code]
alors que ce même code compile très bien sous Visual Studio. On dirait que GCC n'arrive pas à reconnaitre list<Item*>::iterator comme étant un type, car il suffit que je mette iterator ou juste list<Item*> pour que l'erreur disparaisse !
Aurais-je manqué quelques choses lors de la résolution de portée
Merci de votre aide !
Edité par Francesco ( 07/05/2007 18:32:02 )Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)