Problème fonction template
Bonjour à tous, j'ai un problème de compilation avec cette fonction:
Code:
1 2 3 4 5 6 7 8
| template<typename T>
int read(int key, T & sortie) {
switch(m_instructions.type) {
case STRING:
sortie = linesPart.front(); //retourne une string
return (1);
}
} |
J'ai enlevé beaucoup de choses de cette fonction, j'espère que ça suffit pour comprendre.
linesPart.front(); retourne une string. Le compilateur me jette en disant:
Code:
cannot convert std::basic_string<char, std::char_traits<char>, std::allocator<char> > to int in assignment
d'ou sort ce int ? Pourquoi je ne peux pas mettre une string dans sortie alors que le compilateur ne sait même pas quelle type elle a ?
Je pensais que ces vérifications se faisaient à l'éxécution, je ne comprend pas pourquoi ça plante à la compilation.
Merci d'avance de votre aide ;)