你需要瞭解的 C++ 17 Top 19 新特性(附精彩評論)

來源:互聯網
上載者:User

標籤:c++11   use   構造   rmi   tee   target   ace   expr   命名   

什麼是 C++17?

C++17(或 C++1z)是繼 C++14 之後 C++ 程式設計語言 ISO/IEC 標準的下一次修訂的非正式名稱。C++17 現在功能已齊全,正在成為國際標準的路上。它的規範已於 2017 年 3 月達到國際標準草案的階段。

C++17 標準化圖表
年份 C++ 標準 正式名稱
1998 ISO/IEC 14882:1998 C++98
2003 ISO/IEC 14882:2003 C++03
2011 ISO/IEC 14882:2011 C++11
2014 ISO/IEC 14882:2014 C++14
2017 Yet to be determined C++17
2020 Yet to be determined C++20
C++17 的 19 個新特性
  1. 使 static_assert 的文本資訊可選

  2. 刪除 trigraphs

  3. 在模板參數中允許使用 typename(作為替代類)

  4. 來自 braced-init-list 的新規則用於自動推導

  5. 嵌套命名空間的定義,例如:使用 namespace X::Y { … } 代替 namespace X { namespace Y { … }}

  6. 允許命名空間和列舉程式的屬性

  7. 新的標準屬性:[[fallthrough]], [[maybe_unused]] 和 [[nodiscard]]

  8. UTF-8 字元文字

  9. 對所有非類型模板參數進行常量評估

  10. Fold 運算式,用於可變的模板

  11. A compile-time static if with the form if constexpr(expression)

  12. 結構化的綁定聲明,現在允許 auto [a, b] = getTwoReturnValues();

  13.  if 和 switch 語句中的初始化器

  14. 在某些情況下,確保通過編譯器進行 copy elision(Guaranteed copy elision by compilers in some cases)

  15.  一些用於對齊記憶體配置的擴充

  16. 建構函式的模板推導,允許使用 std::pair(5.0, false) 代替 std::pair<double,bool>(5.0, false)

  17. 內聯變數,允許在標頭檔中定義變數

  18. __has_include,允許由預先處理程式指令檢查標頭檔的可用性

  19. __cplusplus 的值更改為 201703L

來自:http://www.masalaanews.com/

 

http://www.oschina.net/news/85129/top-19-new-features-of-c17-you-need-to-know

你需要瞭解的 C++ 17 Top 19 新特性(附精彩評論)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.