spécification template et paramètre par défaut
Bonjour,
J'ai créé une fonction template prenant un argument facultatif donc voici le prototype :
Code:
1 2 3
|
template<class T>
bool get(T &variable, std::string &message, validator<T> validator = validator<T>()); |
validator est simplement une classe héritant de std::unary_function :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
template<class T>
class validator : public std::unary_function<T,bool>
{
public:
validator() : std::unary_function<T,bool>()
{
}
virtual bool operator() (T &v)
{
return true;
}
}; |
La compilation se déroule sans erreur, jusqu'à ce que je définisse une spécification templte de la fonction get :
Code:
1 2 3
|
template<>
bool get<std::string>(std::string &variable, const std::message, validator<std::string> validator = validator<std::string>()); |
Là le compilateur s'emballe et me retourne :
Citation:
error: default arguments are only permitted for function parameters
Quelqu'un verrait-il mon erreur ?
Merci.