Heim >Backend-Entwicklung >C++ >Wird das Schlüsselwort „auto' in C 11 häufig verwendet: Wann sollten Sie explizite Eingaben vermeiden?

Wird das Schlüsselwort „auto' in C 11 häufig verwendet: Wann sollten Sie explizite Eingaben vermeiden?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 20:11:10382Durchsuche

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

Ist das Auto-Schlüsselwort von C 11 übertrieben?

Während sich das Auto-Schlüsselwort bei der Handhabung komplexer Vorlagentypen, wie von seinen Designern vorgesehen, als unschätzbar wertvoll erwiesen hat, Es bestehen Bedenken hinsichtlich einer übermäßigen Verwendung in einfacheren Szenarien. Sollte auto verwendet werden, um die explizite Angabe von Typen zu vermeiden, auch für einfache Ausdrücke wie std::make_shared()?

Verwendungszweck und praktische Richtlinien

Gemäß Laut C-Standard-Komitee sollte „auto“ verwendet werden, wenn die explizite Angabe des Typs eine Herausforderung darstellt, der Typ auf der rechten Seite jedoch offensichtlich ist. Betrachten Sie beispielsweise den folgenden Code:

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

Das Abrufen des zusammengesetzten Schlüsseltyps in boost::multi_index erfordert diesen komplexen Ausdruck. Auch wenn der Typ bekanntermaßen int ist, sollte in solchen Fällen auto verwendet werden, um die Lesbarkeit zu verbessern.

Empfohlene Anwendungsfälle

Verwenden Sie auto, wenn:

  • Der Leser kann leicht auf den durch auto dargestellten Typ schließen.
  • Der Typ ist auf der rechten Seite offensichtlich des Ausdrucks.
  • Es verbessert die Lesbarkeit und verhindert unnötige Wiederholungen.

Beispiele

  • Verwendung von auto in std::make_shared< ;Foo>() ist angemessen, da der Typ offensichtlich ist.
  • Im Ausdruck bla(), wobei bla() einen shared_ptr zurückgibt, ist die Verwendung von auto unklar, da der Typ von foo ungewiss ist.
  • Verwendung von auto in einer Schleife, in der der Iteratortyp bekannt ist, aber nicht der spezifische Iterator, wie auto it = v.begin();, kann die Klarheit des Codes verbessern.

Vorsicht Tales

  • Explizite Angabe der Typhilfen in Dokumentation und Plausibilitätsprüfungen.
  • Seien Sie vorsichtig, wenn Sie automatische For-Schleifen mit vorzeichenlosen Variablen verwenden, da dies zu unerwarteten Fehlern führen kann.

Das obige ist der detaillierte Inhalt vonWird das Schlüsselwort „auto' in C 11 häufig verwendet: Wann sollten Sie explizite Eingaben vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn