Un exemple où un auto entier m'a aidé ? Passage en 64 bits d'un code contenant à la fois des collections STL et des collections maisons que l'on vire peu à peu où les indices et tailles étaient gérées en signed int. Donc en gros plein de confusions et de casts entre int, size_t, unsigned_int, long, unsigned long....
Quand je vois :
int elementCount = maCollection.size();
Je n'ai aucune idée si le code en question est correct ou pas, et s'il va le rester.
Si à la place j'ai
auto elementCount = maCollection.size();
Je sais que mon code est forcément correct. L'équivalent
TypeDeMaCollection::size_type elementCount = maCollection.size();
Me semble moins intéressant, car il m'impose de connaitre le type exact de ma collection, alors que celui-ci peut varier au cours des refactorings.
Partager