Bonjour,
Je souhaite créer dans une template une fonction prenant un predicat de type Predicate dans le but d'user de la foncton std::list<T>::remove_if(Predicate pred).
Seulement je n'arrive pas à l'intérieur de ma classe à ce que le compilateur reconnaisse le type Predicate.
Ma template est définit comme il suit :
Et j'essaye à l'interieur de rajouter la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template <class t> class listing{ public : list<t> l ; .... }
template <class T> void Listing<T>::SupprimerElement(Predicate pred) ;
Ne reconnaissant pas le type Predicate, j'ai testé de le faire passé pour un typename en écrivant :
template <class T> void Listing<T>::SupprimerElement(typename Predicate pred) ;
Mais le compilateur me jet.
Si quelqu'un pouvait me donner la solution à ce problème je lui en serais grée .Listing.h:107: erreur: expected nested-name-specifier before ‘Predicate’
Listing.h:107: erreur: expected ‘,’ or ‘...’ before ‘pred’
Listing.cpp:54: erreur: variable or field ‘SupprimerElement’ declared void
Listing.cpp:54: erreur: template declaration of ‘int SupprimerElement’
Listing.cpp:54: erreur: expected nested-name-specifier before ‘Predicate’
Listing.cpp:54: erreur: expected `(' before ‘Predicate’
Merci d'avance.
Partager