首頁 >後端開發 >C++ >C 11 的「auto」關鍵字是否被過度使用:何時應避免明確鍵入?

C 11 的「auto」關鍵字是否被過度使用:何時應避免明確鍵入?

Susan Sarandon
Susan Sarandon原創
2024-12-08 20:11:10382瀏覽

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

C 11 的 Auto 關鍵字是否過度殺傷力?

雖然 auto 關鍵字在處理複雜模板類型方面已被證明是無價的,正如其設計者所希望的那樣,人們擔心它在更簡單的場景中被過度使用。是否應該使用 auto 來避免明確宣告類型,即使對於像 std::make_shared() 這樣的簡單表達式也是如此?

預期用途和實踐指南

根據C 標準委員會認為,當明確說明類型具有挑戰性但右側的類型很明顯時,應使用 auto。例如,考慮以下程式碼:

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

擷取 boost::multi_index 中的複合鍵類型需要這個複雜的表達式。即使類型已知為 int,在這種情況下也應該使用 auto 來增強可讀性。

推薦用例

在以下情況下使用 auto:

  • 讀者可以輕鬆推斷 auto 所代表的類型。
  • 類型在
  • 它提高了可讀性並防止不必要的重複。

範例

  • 使用 auto in std::make_shared() 是適當的,因為類型是明顯。
  • 在表達式 bla() 中,其中 bla() 傳回一個shared_ptr,使用 auto 是不清楚的,因為 foo 的型別不確定。
  • 在循環中使用auto,其中已知迭代器類型但不知道特定迭代器,如auto it = v.begin();,可以增強程式碼

警示故事

  • 明確指定類型有助於文件和健全性檢查。
  • 使用 auto 時要小心for 迴圈使用無符號變量,因為它可能會導致意外的結果錯誤。

以上是C 11 的「auto」關鍵字是否被過度使用:何時應避免明確鍵入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn