J'ai une classe Number qui possède un std::string en variable membre.
J'ai doté la classe "d'accesseurs aux fonctions du membre value_" (la classe ne sert pas qu'à ça, mais ce n'est - je pense - pas important) tels que begin(), cbegin(), crbegin() etc..
La classe est séparée en deux fichiers; number.hpp pour les déclarations et implémentations template, et number.cpp pour les autres implémentations.
> C3779 : 'Number::begin()': a function that returns 'auto' cannot be used before it is defined
J'ai compris (au moins je crois) le message d'erreur, il n'arrive pas à déterminer le type de retour de la méthode, parce qu'il ne trouve pas la définition.
Cependant, je suis sûr que number.cpp est bien inclus au projet car d'autres fonctions implémentées dans ce fichier sont utilisables.
Le compilateur n'a pas à rechercher la définition pour trouver le type dans la déclaration (en aucun cas il ne fait une recherche dans une autre unité de compilation donc dans un autre fichier cpp). Si ta déclaration ne fournit pas l'information sur le type tu ne peux pas l'utiliser; C'est l'erreur que tu as.
Avoir une déclaration qui ne fournit pas le type exact, ça n'est possible que si l'utilisateur "voit" la définition. C'est donc très particulier.
Il te faut donc indiquer le type dès la déclaration.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Liens utiles pour le C++
Discord NaN. Mon site.
En recherche d'emploi.
Liens utiles pour le C++
Liens utiles pour le C++