Maison >développement back-end >C++ >Le mot clé « auto » de C 11 est-il surutilisé : quand devriez-vous éviter la saisie explicite ?

Le mot clé « auto » de C 11 est-il surutilisé : quand devriez-vous éviter la saisie explicite ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 20:11:10385parcourir

Is C  11's `auto` Keyword Overused: When Should You Avoid Explicit Typing?

Le mot-clé automatique de C 11 est-il excessif ?

Bien que le mot-clé auto se soit révélé inestimable dans la gestion des types de modèles complexes, comme prévu par ses concepteurs, des inquiétudes surgissent quant à sa surutilisation dans des scénarios plus simples. Auto doit-il être utilisé pour éviter de déclarer explicitement des types, même pour des expressions simples comme std::make_shared() ?

Utilisation prévue et directives pratiques

Selon le comité standard C, auto doit être utilisé lorsque l'indication explicite que le type est difficile mais que le type du côté droit est évident. Par exemple, considérons le code suivant :

my_multi_type::nth_index<2>::type::key_type::composite_key_type::
    key_extractor_tuple::tail_type::head_type::result_type

La récupération du type de clé composite dans boost::multi_index nécessite cette expression complexe. Même si le type est connu pour être int, auto doit être utilisé pour améliorer la lisibilité dans de tels cas.

Cas d'utilisation recommandés

Utilisez auto lorsque :

  • Le lecteur peut facilement déduire le type représenté par auto.
  • Le type est évident sur le côté droit du expression.
  • Cela améliore la lisibilité et évite les répétitions inutiles.

Exemples

  • Utilisation d'auto dans std::make_shared
  • Dans l'expression bla(), où bla() renvoie un shared_ptr, l'utilisation de auto n'est pas claire car le type de foo est incertain.
  • Utiliser auto dans une boucle où le type d'itérateur est connu mais pas l'itérateur spécifique, comme auto it = v.begin();, peut améliorer la clarté du code.

Attention Contes

  • La spécification explicite du type facilite la documentation et les contrôles d'intégrité.
  • Soyez prudent lorsque vous utilisez des boucles auto for avec des variables non signées, car cela peut entraîner des erreurs inattendues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn