Type Predicate en argument d'une fonction dans une Template.
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 :
Code:
1 2 3 4 5 6
|
template <class t> class listing{
public :
list<t> l ;
....
} |
Et j'essaye à l'interieur de rajouter la fonction :
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.
Citation:
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’
Si quelqu'un pouvait me donner la solution à ce problème je lui en serais grée .
Merci d'avance.