Intérêt du mot-clef 'auto'
Hello all !!
La norme C++11 ajoute le mot-clef 'auto' (oui je sais je suis à la bourre mais mieux vaut tard que jamais :ptdr:) qui permet de laisser déduire le type de retour. Mais personnellement je ne vois pas trop l'intérêt de ce mot-clef :calim2:
En fait si j'ai bien compris cela permet d'éviter, surtout dans le cas des variables à faible durée de vie , de se taper 45 mots juste pour déclarer le type de la variable (genre std::vector<std::vector<std::tuple<int, int, std::string> > >::const_iterator 8O), chose que le typedef permettait de vaguement contourner (bon je reconnais que c'est un peu exagéré mais y a de l'idée).
En fait je trouve que ce mot-clef sacrifie la clarté et la compréhension de code pour pondre du code de manière plus "simple", et je pense que son ajout risque d'entraîner, auprès des nouvelles recrues (ceux et celles qui vont découvrir le C++ via C++11 en tout cas), une sorte de laisser-aller dans le développement de nouvelles fonctions.
Dans ma tête j'imagine une nouvelle personne qui va utiliser des fonctions qu'il vient juste de découvrir et qui va utiliser à tout-va des 'auto' dans les types de retour afin d'éviter de mater la doc, et va donc se rendre compte de son erreur qu'au moment de la compilation. Ce que je veux dire c'est qu'il y a risque d'utilisation du mot-clef 'auto' non seulement dans le cas des variables à faible durée de vie, mais aussi plus loin (genre attributs). Après je crois savoir que la norme interdit l'emploi combiné des mots-clefs 'auto' et 'static' et c'est déjà pas mal. Mais jusqu'où peut-on aller avec 'auto' ?
C'est pour cela que je trouve l'ajout de ce mot-clef plus dangereux qu'utile, et j'évite de l'utiliser. Mais après je n'ai que très peu d'expériences dans le domaine, je pense que mon idée sur la question est assez vague et j'espère avoir votre avis sur la question pour me trancher une meilleure opinion sur ce point.
Qu'en pensez-vous ?
Merci encore :mrgreen: