C++ > C++17

C++17は、プログラミング言語C++の国際規格ISO/IEC 14882:2017の略称である。

廃止された機能

今回の改定では新機能の追加のみではなく、いくつかの機能が廃止されている。

新機能

言語

ライブラリ

以下のヘッダが追加された。

脚注

  1. ↑ “N3981: Removing trigraphs??! (Richard Smith)” (2014年5月6日). 2015年4月3日閲覧。
  2. ↑ IBM comment on preparing for a Trigraph-adverse future in C++17, IBM paper N4210, 2014-10-10. Authors: Michael Wong, Hubert Tong, Rajan Bhakta, Derek Inglis
  3. 1 2 3 “Updates to my trip report”. 2014年11月28日閲覧。
  4. ↑ “N4190: Removing auto_ptr, random_shuffle(), And Old <functional> Stuff (Stephan T. Lavavej)”. 2014年11月28日閲覧。
  5. ↑ “C++ Keywords: register”. 2018年9月3日閲覧。
  6. ↑ “N3928: Extending static_assert, v2 (Walter E. Brown)”. 2015年4月3日閲覧。
  7. ↑ “N4051: Allow typename in a template template parameter (Richard Smith)”. 2015年4月3日閲覧。
  8. ↑ “N3922: New Rules for auto deduction from braced-init-list (James Dennett)”. 2014年11月28日閲覧。
  9. ↑ “N4230: Nested namespace definition (Robert Kawulak, Andrew Tomazos)”. 2014年11月28日閲覧。
  10. 1 2 3 4 “New core language papers adopted for C++17”. 2014年11月15日閲覧。
  11. ↑ “N4266: Attributes for namespaces and enumerators (Richard Smith)”. 2014年11月15日閲覧。
  12. ↑ “N4640: Working Draft, Standard for Programming Language C++”. pp. 193–195. 2017年3月9日閲覧。
  13. ↑ “N4267: Adding u8 character literals (Richard Smith)”. 2014年11月15日閲覧。
  14. ↑ UTF-8 文字列リテラルは C++11 から存在する。C++17 では一貫性確保のために対応する文字リテラルが追加されるが、その型はchar型であり、またUTF-8文字リテラルが扱えるコードポイントの範囲は、C0制御文字とラテン基本文字 (C0 Controls and Basic Latin Unicode block) すなわち ASCII に限定されている。なお、C++標準における従来の文字リテラルは、文字符号化方式がASCIIであることが保証されないため、UTF-8文字リテラルはASCIIを保証するという移植性の観点からも有用である。
  15. ↑ Thomas Köppe. “Hexadecimal floating literals for C++”. 2017年7月16日閲覧。
  16. ↑ “N4659: Working Draft, Standard for Programming Language C++”. 2017年7月16日閲覧。
  17. ↑ “N4268: Allow constant evaluation for all non-type template arguments (Richard Smith)”. 2014年11月15日閲覧。
  18. ↑ “N4295: Folding expressions (Andrew Sutton, Richard Smith)”. 2014年11月15日閲覧。
  19. ↑ “N4659: Working Draft, Standard for Programming Language C++”. 2017年3月24日閲覧。
  20. ↑ “N4659: Working Draft, Standard for Programming Language C++”. 2017年3月24日閲覧。
  21. ↑ “Selection statements with initializer”. 2018年10月9日閲覧。
  22. ↑ “Dynamic memory allocation for over-aligned data”. 2017年3月14日閲覧。
  23. ↑ “Class template argument deduction”. 2019年1月30日閲覧。
  24. ↑ “CppCon 2018: Timur Doumler “Class template argument deduction in C++17””. 2019年1月30日閲覧。
  25. ↑ “N4640: Working Draft, Standard for Programming Language C++”. pp. 431–433. 2017年3月11日閲覧。
  26. ↑ “N4659: Working Draft, Standard for Programming Language C++”. 2017年3月24日閲覧。
  27. ↑ “P0012R1: Make exception specifications be part of the type system, version 5”. 2018年12月17日閲覧。

関連項目

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS B63
📋 変更履歴