From 791344895e6bbc30f562fc70e9077e990b990895 Mon Sep 17 00:00:00 2001 From: rhysd Date: Sat, 27 Jul 2019 00:55:03 +0900 Subject: [PATCH 001/457] =?UTF-8?q?=E5=B9=B3=E8=A1=8C=E3=83=BB=E4=B8=A6?= =?UTF-8?q?=E5=88=97=E5=87=A6=E7=90=86=E7=94=A8=E3=83=A9=E3=82=A4=E3=83=96?= =?UTF-8?q?=E3=83=A9=E3=83=AA=E3=81=AE=E7=B4=B9=E4=BB=8B=E3=83=9A=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=82=92=E8=BF=BD=E5=8A=A0=EF=BC=88Cpp-Taskflow?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/libraries/multi-threading.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docs/libraries/multi-threading.md diff --git a/docs/libraries/multi-threading.md b/docs/libraries/multi-threading.md new file mode 100644 index 0000000..fdb4a13 --- /dev/null +++ b/docs/libraries/multi-threading.md @@ -0,0 +1,9 @@ +description: C++ の平行・並列ライブラリの紹介 + +# マルチタスクスケジューリング + +- [Cpp-Taskflow](https://github.com/cpp-taskflow/cpp-taskflow) MIT + - C++17 以上でモダンな API でタスクフローが組める + - work-stealing スケジューラによる高効率なタスクスケジューリング + - chrome://tracing で実行状況をモニタできる + - タスクフローをグラフ出力できる From 71e912bf6c7f2a1fa5ee051f9b6a029311234246 Mon Sep 17 00:00:00 2001 From: rhysd Date: Sat, 27 Jul 2019 00:55:27 +0900 Subject: [PATCH 002/457] =?UTF-8?q?=E5=8D=98=E4=BD=93=E3=83=86=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=83=95=E3=83=AC=E3=83=BC=E3=83=A0=E3=83=AF=E3=83=BC?= =?UTF-8?q?=E3=82=AF=E7=B4=B9=E4=BB=8B=E7=94=A8=E3=81=AE=E3=83=9A=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=82=92=E8=BF=BD=E5=8A=A0=EF=BC=88googletest,=20Catc?= =?UTF-8?q?h,=20doctest=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/libraries/testing.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/libraries/testing.md diff --git a/docs/libraries/testing.md b/docs/libraries/testing.md new file mode 100644 index 0000000..4cee5f7 --- /dev/null +++ b/docs/libraries/testing.md @@ -0,0 +1,13 @@ +description: C++ のテストフレームワークの紹介 + +# 単体テストフレームワーク + +- [googletest](https://github.com/google/googletest) BSD 3-Clause +- [Catch](https://github.com/catchorg/Catch2) Boost Software License + - C++11 以上 + - シングルヘッダで外部依存ライブラリなし + - 簡単に使い始められるインターフェース +- [doctest](https://github.com/onqtam/doctest) MIT + - C++11 以上 + - シングルヘッダで外部依存ライブラリなし + - ヘッダのコンパイル時間が非常に短く([ベンチマーク](https://github.com/onqtam/doctest/blob/master/doc/markdown/benchmarks.md))、テスト実行のイテレーションを速く回せるのが売り From 924ad2cbeaad056d22b07bf88ad84cd59f6220e2 Mon Sep 17 00:00:00 2001 From: rhysd Date: Sat, 27 Jul 2019 00:58:20 +0900 Subject: [PATCH 003/457] =?UTF-8?q?=E4=B8=A6=E8=A1=8C=E3=83=BB=E4=B8=A6?= =?UTF-8?q?=E5=88=97=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9=E3=83=AA=E3=81=A8?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=83=95=E3=83=AC=E3=83=BC=E3=83=A0?= =?UTF-8?q?=E3=83=AF=E3=83=BC=E3=82=AF=E3=81=AE=E7=B4=B9=E4=BB=8B=E3=82=92?= =?UTF-8?q?=E7=9B=AE=E6=AC=A1=E3=81=AB=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkdocs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 3a50689..97bd49a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -70,7 +70,9 @@ nav: - ライブラリ: - Boost: libraries/boost.md - コンテナ: libraries/containers.md - - テキストデータ: libraries/text-data.md + - テキストデータ: libraries/text-data.md + - 平行・並列: libraries/multi-threading.md + - テストフレームワーク: libraries/testing.md - ツール: - オンラインコンパイラ: tools/onlinecompilers.md - パッケージマネージャ: tools/package-manager.md From 105dfd7e5c024e0df77f4d8308a690ee274717c6 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 27 Jul 2019 01:11:37 +0900 Subject: [PATCH 004/457] =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #22 に関連したスタイルの調整 --- docs/libraries/multi-threading.md | 8 ++++---- docs/libraries/testing.md | 14 +++++++------- docs/libraries/text-data.md | 3 ++- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/docs/libraries/multi-threading.md b/docs/libraries/multi-threading.md index fdb4a13..c8e6614 100644 --- a/docs/libraries/multi-threading.md +++ b/docs/libraries/multi-threading.md @@ -3,7 +3,7 @@ description: C++ の平行・並列ライブラリの紹介 # マルチタスクスケジューリング - [Cpp-Taskflow](https://github.com/cpp-taskflow/cpp-taskflow) MIT - - C++17 以上でモダンな API でタスクフローが組める - - work-stealing スケジューラによる高効率なタスクスケジューリング - - chrome://tracing で実行状況をモニタできる - - タスクフローをグラフ出力できる + - C++17 以上でモダンな API でタスクフローが組める + - work-stealing スケジューラによる高効率なタスクスケジューリング + - `chrome://tracing` で実行状況をモニタできる + - タスクフローをグラフ出力できる diff --git a/docs/libraries/testing.md b/docs/libraries/testing.md index 4cee5f7..c19a6ee 100644 --- a/docs/libraries/testing.md +++ b/docs/libraries/testing.md @@ -3,11 +3,11 @@ description: C++ のテストフレームワークの紹介 # 単体テストフレームワーク - [googletest](https://github.com/google/googletest) BSD 3-Clause -- [Catch](https://github.com/catchorg/Catch2) Boost Software License - - C++11 以上 - - シングルヘッダで外部依存ライブラリなし - - 簡単に使い始められるインターフェース +- [Catch](https://github.com/catchorg/Catch2) BSL 1.0 + - C++11 以上 + - シングルヘッダで外部依存ライブラリなし + - 簡単に使い始められるインターフェース - [doctest](https://github.com/onqtam/doctest) MIT - - C++11 以上 - - シングルヘッダで外部依存ライブラリなし - - ヘッダのコンパイル時間が非常に短く([ベンチマーク](https://github.com/onqtam/doctest/blob/master/doc/markdown/benchmarks.md))、テスト実行のイテレーションを速く回せるのが売り + - C++11 以上 + - シングルヘッダで外部依存ライブラリなし + - ヘッダのコンパイル時間が非常に短く([ベンチマーク](https://github.com/onqtam/doctest/blob/master/doc/markdown/benchmarks.md))、テスト実行のイテレーションを速く回せるのが売り diff --git a/docs/libraries/text-data.md b/docs/libraries/text-data.md index f7a3477..d6ea724 100644 --- a/docs/libraries/text-data.md +++ b/docs/libraries/text-data.md @@ -29,7 +29,8 @@ description: C++ のテキストデータライブラリの紹介 ## XML -- [Boost.PropertyTree](https://github.com/boostorg/property_tree) BSL 1.0 (内部実装に RapidXml を使用) +- [Boost.PropertyTree](https://github.com/boostorg/property_tree) BSL 1.0 + - 内部実装に RapidXml を使用 - [pugixml](https://github.com/zeux/pugixml) MIT - [RapidXml](http://rapidxml.sourceforge.net/) BSL 1.0 - [TinyXML-2](https://github.com/leethomason/tinyxml2) zlib From 9d7f6c09150014990f514d83498ddcff01d6ee14 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 27 Jul 2019 01:20:00 +0900 Subject: [PATCH 005/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #22 のコントリビュータ --- docs/contribution/contributors.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 2139c74..fc9aff6 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -15,6 +15,8 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [C++17 洋書 情報提供](https://github.com/cppmap/cppmap.docs/issues/6) - [処理系の対応状況 情報提供](https://github.com/cppmap/cppmap.docs/pull/7) - [IEEE 754 演算について 情報提供](https://twitter.com/kariya_mitsuru/status/1148972200713584640) +- [@Linda_pp](https://twitter.com/Linda_pp) さん + - [ライブラリ 記事提供](https://github.com/cppmap/cppmap.docs/pull/22) - [@matken11235](https://twitter.com/matken11235) さん - [C++ パッケージマネージャ 情報提供](https://github.com/cppmap/cppmap.docs/pull/2) - [@nekko1119](https://twitter.com/nekko1119) さん From 2cc991234866722c32542c6b2620726c80bc5c41 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 27 Jul 2019 01:34:03 +0900 Subject: [PATCH 006/457] =?UTF-8?q?2019=20Cologne=20=E3=81=AE=20Trip=20rep?= =?UTF-8?q?ort=20=E8=BF=BD=E5=8A=A0,=20=E3=82=B9=E3=82=BF=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index a1ef66b..b6b36fd 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -32,6 +32,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 参加報告 - [2019-07 Cologne ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/cfk9de/201907_cologne_iso_c_committee_trip_report_the/) by Bryce Lelbach and others +- [Trip report: Summer ISO C++ standards meeting (Cologne)](https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/) by Herb Sutter #### 解説 `std::format` や `constexpr vector`, `using enum`, `constinit` など、前回の会議までにおおよそ完成していた多数の提案が C++20 ドラフト入りしました。一方で、2018 年にドラフト入りしていた Contracts は大幅な設計の見直しが発生し、C++20 での導入をキャンセルして Study Group で議論を続けることが決まりました。 @@ -44,13 +45,13 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [JTC1/SC22/WG21 - Papers 2019 mailing2019-03 post-Kona](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/#mailing2019-03) #### 参加報告 -- [2019-02 Kona ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/) by Bryce Lelbach and others -- [Trip report: Winter ISO C++ standards meeting (Kona)](https://herbsutter.com/2019/02/23/trip-report-winter-iso-c-standards-meeting-kona/) by Herb Sutter +- [2019-02 Kona ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/) by Bryce Lelbach and others +- [Trip report: Winter ISO C++ standards meeting (Kona)](https://herbsutter.com/2019/02/23/trip-report-winter-iso-c-standards-meeting-kona/) by Herb Sutter - [Kona: A trip report](https://cor3ntin.github.io/posts/kona2019/) by Corentin -- [Trip report: February 2019 ISO C++ committee meeting, Kona, Hawai’i](http://timur.audio/trip-report-february-2019-iso-c-committee-meeting-kona-hawaii) by Timur Doumler +- [Trip report: February 2019 ISO C++ committee meeting, Kona, Hawai’i](http://timur.audio/trip-report-february-2019-iso-c-committee-meeting-kona-hawaii) by Timur Doumler - [Telescopes and matrices and audio: Kona trip report](https://hatcat.com/?p=69) by Guy Davidson -- [Trip Report: Freestanding (and Modules) in Kona](https://www.reddit.com/r/cpp/comments/ax1z2y/trip_report_freestanding_and_modules_in_kona/) by Bryce Lelbach -- [Trip Report: C++ Standards Meeting in Kona, February 2019](https://botondballo.wordpress.com/2019/03/20/trip-report-c-standards-meeting-in-kona-february-2019/) by Botond Ballo +- [Trip Report: Freestanding (and Modules) in Kona](https://www.reddit.com/r/cpp/comments/ax1z2y/trip_report_freestanding_and_modules_in_kona/) by Bryce Lelbach +- [Trip Report: C++ Standards Meeting in Kona, February 2019](https://botondballo.wordpress.com/2019/03/20/trip-report-c-standards-meeting-in-kona-february-2019/) by Botond Ballo #### 解説 コルーチンと、C++23 以降への先送りが見込まれていたモジュールの C++20 入りが承認され、C++20 は C++11 以来の大型アップデートになることが決まりました。 From 9082be51f2e8a9123b6a011c28064e34dcf05623 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 27 Jul 2019 21:37:10 +0900 Subject: [PATCH 007/457] fix --- docs/libraries/multi-threading.md | 2 +- mkdocs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/libraries/multi-threading.md b/docs/libraries/multi-threading.md index c8e6614..e291889 100644 --- a/docs/libraries/multi-threading.md +++ b/docs/libraries/multi-threading.md @@ -1,4 +1,4 @@ -description: C++ の平行・並列ライブラリの紹介 +description: C++ の並行・並列ライブラリの紹介 # マルチタスクスケジューリング diff --git a/mkdocs.yml b/mkdocs.yml index 97bd49a..59de071 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -71,7 +71,7 @@ nav: - Boost: libraries/boost.md - コンテナ: libraries/containers.md - テキストデータ: libraries/text-data.md - - 平行・並列: libraries/multi-threading.md + - 並行・並列: libraries/multi-threading.md - テストフレームワーク: libraries/testing.md - ツール: - オンラインコンパイラ: tools/onlinecompilers.md From 83cb63311e75141402bdf938e85adc536cea36d4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 27 Jul 2019 21:39:08 +0900 Subject: [PATCH 008/457] =?UTF-8?q?2019=20Cologne=20trip=20report=20?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index b6b36fd..96c847a 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -33,6 +33,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 参加報告 - [2019-07 Cologne ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/cfk9de/201907_cologne_iso_c_committee_trip_report_the/) by Bryce Lelbach and others - [Trip report: Summer ISO C++ standards meeting (Cologne)](https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/) by Herb Sutter +- [Trip Report: C++ Standards Meeting in Cologne, July 2019](https://botondballo.wordpress.com/2019/07/26/trip-report-c-standards-meeting-in-cologne-july-2019/) by Botond Ballo #### 解説 `std::format` や `constexpr vector`, `using enum`, `constinit` など、前回の会議までにおおよそ完成していた多数の提案が C++20 ドラフト入りしました。一方で、2018 年にドラフト入りしていた Contracts は大幅な設計の見直しが発生し、C++20 での導入をキャンセルして Study Group で議論を続けることが決まりました。 From cf32059c84d85d32d113e17f4bc510f553c02bd3 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 29 Jul 2019 19:50:34 +0900 Subject: [PATCH 009/457] P0550R2, P0777R1 --- docs/standardization/cpp20.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index c125d7e..7550e3e 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -901,3 +901,9 @@ int main() ``` +### 型から cv 修飾と参照を除去する `std::remove_cvref` trait [(P0550R2)](https://wg21.link/P0550R2) +型から `const` や `volatile` の修飾および参照を除去したいだけで、配列からポインタ、関数型から関数ポインタへの変換は不要なケースでも、C++17 では `std::remove_cv_t>` と書くと長くなるため、`std::decay` を使うというケースがよくありました。C++20 からは、この問題を解決する `std::remove_cvref` trait が追加されました。この trait は `std::remove_cv_t>` と同じ効果を持ち、ヘルパー型として `std::remove_cvref_t` も用意されます。`std::remove_reference_t>` のような順番の間違いを防ぐ効果もあります。 + +### 標準ライブラリでの不要な `std::decay` の使用を回避 [(P0777R1)](https://wg21.link/P0777R1) +C++17 の標準ライブラリの規格では `std::decay_t` がおよそ 40 箇所で使われていましたが、そのうち cv 修飾の除去や参照の除去だけで十分な箇所について、実装の意図をより明確にするため `std::remove_reference_t` や、C++20 から導入される `std::remove_cvref_t` に置き換えられます。具体的には、`std::apply` や、`std::optional`, `std::variant` の一部のメンバ関数などで置き換えが発生します。 + From ceb69edf9b2c3372dcb35a88634a32d0f3acfc0b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 29 Jul 2019 19:53:26 +0900 Subject: [PATCH 010/457] =?UTF-8?q?=E6=96=87=E9=9D=A2=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 7550e3e..3c24b70 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -904,6 +904,6 @@ int main() ### 型から cv 修飾と参照を除去する `std::remove_cvref` trait [(P0550R2)](https://wg21.link/P0550R2) 型から `const` や `volatile` の修飾および参照を除去したいだけで、配列からポインタ、関数型から関数ポインタへの変換は不要なケースでも、C++17 では `std::remove_cv_t>` と書くと長くなるため、`std::decay` を使うというケースがよくありました。C++20 からは、この問題を解決する `std::remove_cvref` trait が追加されました。この trait は `std::remove_cv_t>` と同じ効果を持ち、ヘルパー型として `std::remove_cvref_t` も用意されます。`std::remove_reference_t>` のような順番の間違いを防ぐ効果もあります。 -### 標準ライブラリでの不要な `std::decay` の使用を回避 [(P0777R1)](https://wg21.link/P0777R1) +### 標準ライブラリでの不必要な `std::decay` の使用を回避 [(P0777R1)](https://wg21.link/P0777R1) C++17 の標準ライブラリの規格では `std::decay_t` がおよそ 40 箇所で使われていましたが、そのうち cv 修飾の除去や参照の除去だけで十分な箇所について、実装の意図をより明確にするため `std::remove_reference_t` や、C++20 から導入される `std::remove_cvref_t` に置き換えられます。具体的には、`std::apply` や、`std::optional`, `std::variant` の一部のメンバ関数などで置き換えが発生します。 From ff8a6bee835c78f875f63d716b4576c06d2bd6e1 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 29 Jul 2019 20:01:40 +0900 Subject: [PATCH 011/457] =?UTF-8?q?=E6=96=87=E9=9D=A2=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 3c24b70..7eec755 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -902,7 +902,7 @@ int main() ### 型から cv 修飾と参照を除去する `std::remove_cvref` trait [(P0550R2)](https://wg21.link/P0550R2) -型から `const` や `volatile` の修飾および参照を除去したいだけで、配列からポインタ、関数型から関数ポインタへの変換は不要なケースでも、C++17 では `std::remove_cv_t>` と書くと長くなるため、`std::decay` を使うというケースがよくありました。C++20 からは、この問題を解決する `std::remove_cvref` trait が追加されました。この trait は `std::remove_cv_t>` と同じ効果を持ち、ヘルパー型として `std::remove_cvref_t` も用意されます。`std::remove_reference_t>` のような順番の間違いを防ぐ効果もあります。 +型から `const` や `volatile` の修飾および参照を除去したいだけで、配列からポインタ、関数型から関数ポインタへの変換は不要なケースでも、C++17 では `std::remove_cv_t>` と書くと長くなるため、`std::decay` を使うというケースがよくありました。C++20 からは `std::remove_cv_t>` と同じ効果を持つ `std::remove_cvref` trait と、そのヘルパー型の `std::remove_cvref_t` が追加されます。`std::remove_reference_t>` のような順番の間違いを防ぐ効果もあります。 ### 標準ライブラリでの不必要な `std::decay` の使用を回避 [(P0777R1)](https://wg21.link/P0777R1) C++17 の標準ライブラリの規格では `std::decay_t` がおよそ 40 箇所で使われていましたが、そのうち cv 修飾の除去や参照の除去だけで十分な箇所について、実装の意図をより明確にするため `std::remove_reference_t` や、C++20 から導入される `std::remove_cvref_t` に置き換えられます。具体的には、`std::apply` や、`std::optional`, `std::variant` の一部のメンバ関数などで置き換えが発生します。 From 76b40309426516745934984ae621033ab529af6d Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 29 Jul 2019 20:06:13 +0900 Subject: [PATCH 012/457] =?UTF-8?q?=E6=96=87=E9=9D=A2=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 7eec755..f05d01d 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -902,7 +902,7 @@ int main() ### 型から cv 修飾と参照を除去する `std::remove_cvref` trait [(P0550R2)](https://wg21.link/P0550R2) -型から `const` や `volatile` の修飾および参照を除去したいだけで、配列からポインタ、関数型から関数ポインタへの変換は不要なケースでも、C++17 では `std::remove_cv_t>` と書くと長くなるため、`std::decay` を使うというケースがよくありました。C++20 からは `std::remove_cv_t>` と同じ効果を持つ `std::remove_cvref` trait と、そのヘルパー型の `std::remove_cvref_t` が追加されます。`std::remove_reference_t>` のような順番の間違いを防ぐ効果もあります。 +型から `const` や `volatile` の修飾および参照を除去したいだけで、配列からポインタ、関数型から関数ポインタへの変換については不要であっても、C++17 では `std::remove_cv_t>` と書くと長くなるため `std::decay` を使うというケースがよくありました。C++20 からは `std::remove_cv_t>` と同じ効果を持つ `std::remove_cvref` trait と、そのヘルパー型 `std::remove_cvref_t` が追加され、短く書けるようになります。`std::remove_reference_t>` のような順番の間違いを防ぐことにもつながります。 ### 標準ライブラリでの不必要な `std::decay` の使用を回避 [(P0777R1)](https://wg21.link/P0777R1) C++17 の標準ライブラリの規格では `std::decay_t` がおよそ 40 箇所で使われていましたが、そのうち cv 修飾の除去や参照の除去だけで十分な箇所について、実装の意図をより明確にするため `std::remove_reference_t` や、C++20 から導入される `std::remove_cvref_t` に置き換えられます。具体的には、`std::apply` や、`std::optional`, `std::variant` の一部のメンバ関数などで置き換えが発生します。 From 5906e9256d0e6e9533b6ced38557d58445a6db01 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 29 Jul 2019 23:55:32 +0900 Subject: [PATCH 013/457] add trip report --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 96c847a..922f636 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -34,6 +34,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [2019-07 Cologne ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/cfk9de/201907_cologne_iso_c_committee_trip_report_the/) by Bryce Lelbach and others - [Trip report: Summer ISO C++ standards meeting (Cologne)](https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/) by Herb Sutter - [Trip Report: C++ Standards Meeting in Cologne, July 2019](https://botondballo.wordpress.com/2019/07/26/trip-report-c-standards-meeting-in-cologne-july-2019/) by Botond Ballo +- [The German tour: Cologne trip report](https://hatcat.com/?p=86) by Guy Davidson #### 解説 `std::format` や `constexpr vector`, `using enum`, `constinit` など、前回の会議までにおおよそ完成していた多数の提案が C++20 ドラフト入りしました。一方で、2018 年にドラフト入りしていた Contracts は大幅な設計の見直しが発生し、C++20 での導入をキャンセルして Study Group で議論を続けることが決まりました。 From 1878ce1705eb2aa749fc89b9aecc688971880c95 Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Wed, 31 Jul 2019 13:33:10 +0900 Subject: [PATCH 014/457] =?UTF-8?q?C++=20MIX=204=E3=81=AE=E5=8B=95?= =?UTF-8?q?=E7=94=BB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index b8dff05..8a10bd5 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -17,10 +17,10 @@ description: 国内で開催されている C++ 関連の勉強会イベント | タイトル | 発表者 | ムービー | |----------------------------------------------------------------------------------------------------|----------------------|------| | 勉強会と会場の説明 | Shintaro Okada | | -| [C++ でも Result したい](https://speakerdeck.com/loligothick/c-plus-plus-demorustfalseresultgashi-itai) | いなむのみたま (@mitama_rs) | | -| [世界を創造する OSS 開発を始めた話](https://www.slideshare.net/Gaccho1/oss-c-mix-151965959) | がっちょ | | -| [C++ で HTTP Proxy](https://www.slideshare.net/YasunoriHigashiyama/chttp-proxy) | 東山裕徳 | | -| [モジュールの概要](https://www.slideshare.net/TetsuroMatsumura/c20-152189285) | Tetsuro Matsumura | | +| [C++ でも Result したい](https://speakerdeck.com/loligothick/c-plus-plus-demorustfalseresultgashi-itai) | いなむのみたま (@mitama_rs) | [:fa-play:](https://youtu.be/_GYnVhGmenY) | +| [世界を創造する OSS 開発を始めた話](https://www.slideshare.net/Gaccho1/oss-c-mix-151965959) | がっちょ | [:fa-play:](https://youtu.be/cNEo65uGJXY) | +| [C++ で HTTP Proxy](https://www.slideshare.net/YasunoriHigashiyama/chttp-proxy) | 東山裕徳 | [:fa-play:](https://youtu.be/ldQr9meQY00) | +| [モジュールの概要](https://www.slideshare.net/TetsuroMatsumura/c20-152189285) | Tetsuro Matsumura | [:fa-play:](https://youtu.be/_UhfHhRwPQY) | ### C++ MIX #3 [(2019-04-17)](https://cppmix.connpass.com/event/124862/) | タイトル | 発表者 | ムービー | From 0e70561af60e4886677e2b6533f7b32aa186ccba Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 31 Jul 2019 19:54:40 +0900 Subject: [PATCH 015/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index fc9aff6..6c439be 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -8,6 +8,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [@cpp_akira](https://twitter.com/cpp_akira) さん - [オンライン資料 情報提供](https://github.com/cppmap/cppmap.docs/pull/16) + - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/24) - [@Fuyutsubaki](https://twitter.com/Fuyutsubaki) さん - [なぜかコンパイルできない ネタ提供](https://github.com/cppmap/cppmap.docs/issues/9#issuecomment-472076826) - [標準ライブラリ 記事作成](https://github.com/cppmap/cppmap.docs/pull/12) From e1aca8a525761f0ae1d54a061b8e9e09e6c3be02 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 31 Jul 2019 20:08:13 +0900 Subject: [PATCH 016/457] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=87=E3=82=A3?= =?UTF-8?q?=E6=A0=AA=E5=BC=8F=E4=BC=9A=E7=A4=BE=20C++=20=E5=8B=89=E5=BC=B7?= =?UTF-8?q?=E4=BC=9A=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 8a10bd5..4eb1a4e 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -101,9 +101,11 @@ description: 国内で開催されている C++ 関連の勉強会イベント ## キャディ株式会社 C++ 勉強会 >キャディ株式会社はテクニカルアドバイザーとして江添亮氏を迎え入れ、今後隔週でC++にまつわる勉強会を実施します。基礎的な内容から発展的な内容まで、幅広くシリーズ開催していく予定ですので、C++の勉強をしている方、江添亮氏やキャディメンバーとお話したい方など気軽にいらしてください。 -| イベント番号 | 内容 | -|-------------------------------------------------------------------|------------------| -| #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | +- Twitter ハッシュタグ [#caddicpp](https://twitter.com/search?q=%23caddicpp) + +| イベント番号 | 内容 | ムービー | +|-------------------------------------------------------------------|------------------|-------------------------------------------| +| #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | ## 札幌 C++ 勉強会 From d3aae6c6d742e22defdf858ca98bf8418da7cb68 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 2 Aug 2019 13:34:17 +0900 Subject: [PATCH 017/457] C++ MIX 5 --- docs/learn/studymeetings.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 4eb1a4e..85f9ac9 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -13,6 +13,11 @@ description: 国内で開催されている C++ 関連の勉強会イベント - [Youtube チャンネル](https://www.youtube.com/channel/UC3c011RjfXoU4Gj86V7sb_w) - Twitter ハッシュタグ [#cppmix](https://twitter.com/search?q=%23cppmix) +### C++ MIX #5 [(2019-09-04)](https://cppmix.connpass.com/event/141908/) +| タイトル | 発表者 | ムービー | +|-----------|----------------------|---------| + + ### C++ MIX #4 [(2019-06-26)](https://cppmix.connpass.com/event/132145/) | タイトル | 発表者 | ムービー | |----------------------------------------------------------------------------------------------------|----------------------|------| From f628160f0875a70987135d046086207af01ffbea Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 3 Aug 2019 11:37:05 +0900 Subject: [PATCH 018/457] =?UTF-8?q?C++=20=E3=81=A7=E3=82=88=E3=81=8F?= =?UTF-8?q?=E4=BD=BF=E3=82=8F=E3=82=8C=E3=82=8B=E7=95=A5=E8=AA=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/articles/acronyms.md | 212 ++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 213 insertions(+) create mode 100644 docs/articles/acronyms.md diff --git a/docs/articles/acronyms.md b/docs/articles/acronyms.md new file mode 100644 index 0000000..d8aff63 --- /dev/null +++ b/docs/articles/acronyms.md @@ -0,0 +1,212 @@ +description: C++ でよく使われる略語の紹介 + +# C++ でよく使われる略語 + +### ABI | Application Binary Interface +アプリケーション・バイナリ・インタフェース + +### ACCU | Association of C and C++ Users +C および C++ ユーザ協会。[年次カンファレンス](https://conference.accu.org/) の開催や「[Overload](https://accu.org/index.php/journals/c78/)」の刊行などを行う。 + +### ADL | Argument-dependent lookup +実引数依存の名前検索 + +### ANSI | American National Standards Institute +米国国家規格協会 + +### API | Application Programming Interface +アプリケーション・プログラミング・インタフェース + +### BCPL | Basic Combined Programming Language +1966 年にマーティン・リチャーズが設計したプログラミング言語。C 言語や C++ に影響を与えた。 + +### BMI | Binary Module Interface +コンパイラがモジュールファイルをコンパイルして生成する中間ファイル。GCC では CMI (Compiled Module Interfaces) と呼ぶ + +### CD | Committee Draft +規格の委員会原案 + +### COW | Copy On Write +コピーオンライトと呼ばれる最適化テクニック + +### CPP | C Preprocessor +マクロを処理するプリプロセッサ + +### CRTP | Curiously Recurring Template Pattern +奇妙に再帰したテンプレートパターン + +### CTAD | Class Template Argument Deduction +クラステンプレートのテンプレート引数推論 + +### CWG | Core Working Group +C++ 標準化委員会のワーキンググループの 1 つ。言語機能に関する規格文面をレビューする。 + +### deque | double-ended queue +両端キュー + +### DIS | Draft International Standard +国際規格案 + +### EBO | Empty Base Optimization +空の基底クラスの最適化 + +### EDG | Edison Design Group +企業名。C/C++ コンパイラフロントエンドを開発する。[Edison Design Group](https://www.edg.com/company) + +### EOF | End-of-File +ファイルの終端 + +### EWG | Evolution Working Group +C++ 標準化委員会のワーキンググループの 1 つ。言語機能の設計をする。 + +### EWGI | Evolution Working Group Incubator +C++ 標準化委員会のスタディグループの 1 つ (SG17). EWG に向けた提案の評価をする。 + +### FCD | Final Committee Draft +規格の最終委員会原案 + +### FDIS | Final Draft International Standard +最終国際規格案 + +### GCC | GNU Compiler Collection / GNU C++ Compiler +GNU コンパイラコレクション、またはその C++ コンパイラ + +### G++ | GNU C++ Compiler +GNU コンパイラコレクションの C++ コンパイラ + +### ICE | Internal Compiler Error +コンパイラ内部エラー + +### IDE | Integrated Development Enviornment +統合開発環境 + +### IEC | International Electronics Commission +国際電気標準会議 + +### I/O | Input/Output +入出力 + +### IS | International Standard +国際規格 + +### ISO | International Organization for Standardization +国際標準化機構 + +### K&R | Kernighan and Ritchie's +ブライアン・カーニハンとデニス・リッチーによる著書「プログラミング言語 C」の俗称。書中で使われている字下げスタイルが「K&R スタイル」と呼ばれる。 + +### LEWG | Library Evolution Working Group +C++ 標準化委員会のワーキンググループの 1 つ。標準ライブラリの設計をする。 + +### LEWGI | Library Evolution Working Group Incubator +C++ 標準化委員会のスタディグループの 1 つ (SG18). LEWG に向けた提案の評価をする。 + +### LWG | Library Working Group +C++ 標準化委員会のワーキンググループの 1 つ。標準ライブラリに関する規格文面をレビューする。 + +### MSVC | Microsoft Visual C++ +Microsoft Visual Studio の C++ コンパイラ + +### NaN | Not a Number +浮動小数点数で使われる非数の表現 + +### NB | National Body +標準化委員会の各国支部 + +### NRVO | Named Return Value Optimization +名前付き戻り値の最適化 + +### NSDMI | Non-Static Data Member Initializers +非静的メンバの初期化 + +### NTTP | Non-Type Template Parameter +非型テンプレート・パラメータ + +### NVI | Non-Virtual Interface +非仮想インターフェース。C++ のプログラミングテクニック + +### ODR | One Definition Rule +C++ の設計コンセプトの 1 つ。あらゆる型や関数、テンプレートは複数の定義を持てないというルール + +### OOD | Object Oriented Design +オブジェクト指向設計 + +### OOP | Object Oriented Programming +オブジェクト指向プログラミング + +### OOPL | Object Oriented Programing Language +オブジェクト指向プログラミング言語 + +### PCH | Precompiled Header +プリコンパイル済みヘッダ + +### PImpl | Pointer to Implementation +クラスの実装の詳細を隠す、C++ のプログラミングテクニック + +### POD | Plain Old Data +C 言語と互換性のあるオブジェクトレイアウトを持つ型 + +### RAII | Resource Allocation Is Initialization +「リソース取得は初期化である」という C++ のプログラミングテクニック + +### RTTI | Run-Time Type Information +実行時型情報 + +### RVO | Return Value Optimization +戻り値の最適化 + +### SBO | Small Buffer Optimization +小さい動的配列でのメモリアロケーションを避ける C++ の最適化テクニック + +### SEH | Structured Exception Handling +構造化例外処理。Windows で使われる独自の例外処理。 + +### SFINAE | Substitution Failure Is Not An Error +テンプレートプログラミングのテクニックの 1 つ + +### SG | Study Group +特定のテーマについて議論する、C++ 標準化委員会のサブグループ + +### SOO | Small Object Optimization +小さなオブジェクトに対するメモリアロケーションを避ける C++ の最適化テクニック + +### SSO | Small String Optimization +短い文字列でのメモリアロケーションを避ける C++ の最適化テクニック + +### STL | Standard Template Library +アレクサンダー・ステパノフらによって設計された標準テンプレートライブラリ。のちに C++ の標準ライブラリの一部となった。現在では C++ 標準ライブラリ全般を指して STL と呼ぶこともある。 + +### TLS | Thread Local Storage +スレッド局所記憶 + +### TMP | Template Meta Programming +テンプレートメタプログラミング + +### TR | Technical Report +実験的な C++ の機能に関する報告書、現在は TS に移行 + +### TS | Technical Specification +実験的な C++ の機能に関する仕様書 + +### UB | Undefined Behavior +未定義動作 + +### UDL | User-Defined Literals +ユーザ定義リテラル + +### WD | Working Draft +規格の作業原案 + +### WG | Working Group +作業グループ + +## 参考文献 +- Acronyms | cppreference.com + https://en.cppreference.com/w/cpp/language/acronyms +- A C++ acronym glossary + https://quuxplusone.github.io/blog/2019/08/02/the-tough-guide-to-cpp-acronyms/ +- C++ 国際標準規格 | cpprefjp + https://cpprefjp.github.io/international-standard.html +- Bjarne Stroustrup's C++ Glossary + http://www.stroustrup.com/glossary.html#Gvirtual-function-table + diff --git a/mkdocs.yml b/mkdocs.yml index 59de071..39ef2ce 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -62,6 +62,7 @@ nav: - 予約語の読みと名前の由来: articles/how-to-read-keywords.md - 標準ライブラリの読みと名前の由来: articles/how-to-read-libraries.md - IEEE 754 演算のルール: articles/ieee754-arithmetic.md + - C++ でよく使われる略語: articles/acronyms.md - 学習: - 書籍: learn/books.md - オンライン資料: learn/online-resources.md From df070dafd17ce2025dfd5c92a715ceef9bf50094 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 3 Aug 2019 11:40:41 +0900 Subject: [PATCH 019/457] =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/articles/acronyms.md | 4 ++-- mkdocs.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/articles/acronyms.md b/docs/articles/acronyms.md index d8aff63..ee79de2 100644 --- a/docs/articles/acronyms.md +++ b/docs/articles/acronyms.md @@ -1,6 +1,6 @@ -description: C++ でよく使われる略語の紹介 +description: C++ 関連の略語の紹介 -# C++ でよく使われる略語 +# C++ 関連の略語 ### ABI | Application Binary Interface アプリケーション・バイナリ・インタフェース diff --git a/mkdocs.yml b/mkdocs.yml index 39ef2ce..9d4d8db 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -62,7 +62,7 @@ nav: - 予約語の読みと名前の由来: articles/how-to-read-keywords.md - 標準ライブラリの読みと名前の由来: articles/how-to-read-libraries.md - IEEE 754 演算のルール: articles/ieee754-arithmetic.md - - C++ でよく使われる略語: articles/acronyms.md + - C++ 関連の略語: articles/acronyms.md - 学習: - 書籍: learn/books.md - オンライン資料: learn/online-resources.md From 959b33411351c3a7fe116be355820a96e56029ff Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 5 Aug 2019 19:24:25 +0900 Subject: [PATCH 020/457] =?UTF-8?q?=E7=95=A5=E8=AA=9E=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/articles/acronyms.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/articles/acronyms.md b/docs/articles/acronyms.md index ee79de2..758dc45 100644 --- a/docs/articles/acronyms.md +++ b/docs/articles/acronyms.md @@ -8,7 +8,7 @@ description: C++ 関連の略語の紹介 ### ACCU | Association of C and C++ Users C および C++ ユーザ協会。[年次カンファレンス](https://conference.accu.org/) の開催や「[Overload](https://accu.org/index.php/journals/c78/)」の刊行などを行う。 -### ADL | Argument-dependent lookup +### ADL | Argument Dependent Lookup 実引数依存の名前検索 ### ANSI | American National Standards Institute @@ -17,12 +17,18 @@ C および C++ ユーザ協会。[年次カンファレンス](https://conferen ### API | Application Programming Interface アプリケーション・プログラミング・インタフェース +### BCC | Borland C++ Compiler +現在の Embarcadero C++ Builder の前身。2000 年にリリースされた Borland C++ Compiler 5.5 は、当時はめずらしい無償の C++ コンパイラとして、広く使われた。 + ### BCPL | Basic Combined Programming Language 1966 年にマーティン・リチャーズが設計したプログラミング言語。C 言語や C++ に影響を与えた。 ### BMI | Binary Module Interface コンパイラがモジュールファイルをコンパイルして生成する中間ファイル。GCC では CMI (Compiled Module Interfaces) と呼ぶ +### C++ AMP | C++ Accelerated Massive Parallelism +マイクロソフトなどが開発を進めている、並列計算のための言語拡張機能とライブラリ + ### CD | Committee Draft 規格の委員会原案 @@ -101,6 +107,9 @@ C++ 標準化委員会のワーキンググループの 1 つ。標準ライブ ### LEWGI | Library Evolution Working Group Incubator C++ 標準化委員会のスタディグループの 1 つ (SG18). LEWG に向けた提案の評価をする。 +### LTO | Link Time Optimization +リンク時最適化 + ### LWG | Library Working Group C++ 標準化委員会のワーキンググループの 1 つ。標準ライブラリに関する規格文面をレビューする。 @@ -140,6 +149,9 @@ C++ の設計コンセプトの 1 つ。あらゆる型や関数、テンプレ ### PCH | Precompiled Header プリコンパイル済みヘッダ +### PGO | Profile-guided Optimization +プロファイリングによる最適化 + ### PImpl | Pointer to Implementation クラスの実装の詳細を隠す、C++ のプログラミングテクニック From 3302cace7a727bfb2a6f35d9ad88b70aec1a958a Mon Sep 17 00:00:00 2001 From: wolf_cpp Date: Wed, 7 Aug 2019 19:48:16 +0900 Subject: [PATCH 021/457] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=87=E3=82=A3?= =?UTF-8?q?=E5=8B=89=E5=BC=B7=E4=BC=9A=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 第二回勉強会実施します - 社名をリンクに置き換えました --- docs/learn/studymeetings.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 85f9ac9..e2979c7 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -104,12 +104,13 @@ description: 国内で開催されている C++ 関連の勉強会イベント ## キャディ株式会社 C++ 勉強会 ->キャディ株式会社はテクニカルアドバイザーとして江添亮氏を迎え入れ、今後隔週でC++にまつわる勉強会を実施します。基礎的な内容から発展的な内容まで、幅広くシリーズ開催していく予定ですので、C++の勉強をしている方、江添亮氏やキャディメンバーとお話したい方など気軽にいらしてください。 +>[キャディ株式会社](https://corp.caddi.jp/)はテクニカルアドバイザーとして江添亮氏を迎え入れ、今後隔週でC++にまつわる勉強会を実施します。基礎的な内容から発展的な内容まで、幅広くシリーズ開催していく予定ですので、C++の勉強をしている方、江添亮氏やキャディメンバーとお話したい方など気軽にいらしてください。 - Twitter ハッシュタグ [#caddicpp](https://twitter.com/search?q=%23caddicpp) | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | | | #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | From 02840bffc16602a7493bc7c2948ab523f23a8ae9 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 8 Aug 2019 00:50:54 +0900 Subject: [PATCH 022/457] =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E3=81=AE=E7=B5=B1=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit イベント主催企業は C++ に直接関係しないためリンクを付けません。 --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index e2979c7..6f0aa3d 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -104,7 +104,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント ## キャディ株式会社 C++ 勉強会 ->[キャディ株式会社](https://corp.caddi.jp/)はテクニカルアドバイザーとして江添亮氏を迎え入れ、今後隔週でC++にまつわる勉強会を実施します。基礎的な内容から発展的な内容まで、幅広くシリーズ開催していく予定ですので、C++の勉強をしている方、江添亮氏やキャディメンバーとお話したい方など気軽にいらしてください。 +>キャディ株式会社はテクニカルアドバイザーとして江添亮氏を迎え入れ、今後隔週でC++にまつわる勉強会を実施します。基礎的な内容から発展的な内容まで、幅広くシリーズ開催していく予定ですので、C++の勉強をしている方、江添亮氏やキャディメンバーとお話したい方など気軽にいらしてください。 - Twitter ハッシュタグ [#caddicpp](https://twitter.com/search?q=%23caddicpp) From f694232011bb3324e5539d600d5242b54a92aa42 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 8 Aug 2019 00:54:16 +0900 Subject: [PATCH 023/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 6c439be..5cc56ce 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -34,6 +34,8 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/21) - [@tetzrom](https://twitter.com/tetzrom) さん - [オンライン資料 情報提供](https://github.com/cppmap/cppmap.docs/pull/15) +- [@wolf_cpp](https://twitter.com/wolf_cpp) さん + - [国内の勉強会 情報提供](https://github.com/cppmap/cppmap.docs/pull/25) - [@wx257osn2](https://twitter.com/wx257osn2) さん - [オンラインコンパイラ 情報提供](https://github.com/cppmap/cppmap.docs/pull/18) - [@yohhoy](https://twitter.com/yohhoy) さん From 0bcdb72a6e26c0913485d7e65c1d31bb5dcf33d0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 16 Aug 2019 23:43:34 +0900 Subject: [PATCH 024/457] =?UTF-8?q?trip=20report=20=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 922f636..a6e83a0 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -35,6 +35,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [Trip report: Summer ISO C++ standards meeting (Cologne)](https://herbsutter.com/2019/07/20/trip-report-summer-iso-c-standards-meeting-cologne/) by Herb Sutter - [Trip Report: C++ Standards Meeting in Cologne, July 2019](https://botondballo.wordpress.com/2019/07/26/trip-report-c-standards-meeting-in-cologne-july-2019/) by Botond Ballo - [The German tour: Cologne trip report](https://hatcat.com/?p=86) by Guy Davidson +- [Trip report: July 2019 ISO C++ committee meeting, Cologne, Germany](http://timur.audio/trip-report-july-2019-iso-c-committee-meeting-cologne-germany) by Timur Doumler #### 解説 `std::format` や `constexpr vector`, `using enum`, `constinit` など、前回の会議までにおおよそ完成していた多数の提案が C++20 ドラフト入りしました。一方で、2018 年にドラフト入りしていた Contracts は大幅な設計の見直しが発生し、C++20 での導入をキャンセルして Study Group で議論を続けることが決まりました。 From 17851c8405c98bf4dafb86ae7527507dc03200a2 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 19 Aug 2019 13:30:53 +0900 Subject: [PATCH 025/457] P0631R8 --- docs/standardization/cpp20.md | 51 +++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index f05d01d..4cd890d 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -2,12 +2,13 @@ description: C++20 の新しい言語機能と標準ライブラリ機能の解 # C++20 の新機能 -現在、執筆作業中です(完成度 約 25%)。 -一覧は [処理系の対応状況](https://cppmap.github.io/standardization/status/) から C++20 のページを参照してください。 +C++20 の変更すべてをカバーするために、項目追加・執筆作業中です(完成度 約 25%) ## 言語機能 ### ビットフィールドにデフォルトの初期値を設定可能に [(P0683R1)](http://wg21.link/p0683r1) +ビットフィールドにおけるビット幅の指定に続いて、`=` 演算子または `{}` 初期化子を使って初期化式を記述できるようになります。 + ```C++ #include @@ -904,6 +905,52 @@ int main() ### 型から cv 修飾と参照を除去する `std::remove_cvref` trait [(P0550R2)](https://wg21.link/P0550R2) 型から `const` や `volatile` の修飾および参照を除去したいだけで、配列からポインタ、関数型から関数ポインタへの変換については不要であっても、C++17 では `std::remove_cv_t>` と書くと長くなるため `std::decay` を使うというケースがよくありました。C++20 からは `std::remove_cv_t>` と同じ効果を持つ `std::remove_cvref` trait と、そのヘルパー型 `std::remove_cvref_t` が追加され、短く書けるようになります。`std::remove_reference_t>` のような順番の間違いを防ぐことにもつながります。 + ### 標準ライブラリでの不必要な `std::decay` の使用を回避 [(P0777R1)](https://wg21.link/P0777R1) C++17 の標準ライブラリの規格では `std::decay_t` がおよそ 40 箇所で使われていましたが、そのうち cv 修飾の除去や参照の除去だけで十分な箇所について、実装の意図をより明確にするため `std::remove_reference_t` や、C++20 から導入される `std::remove_cvref_t` に置き換えられます。具体的には、`std::apply` や、`std::optional`, `std::variant` の一部のメンバ関数などで置き換えが発生します。 + +### 数学定数をまとめた `` ヘッダ [(P0631R8)](https://wg21.link/P0631R8) +これまで C++ の標準ライブラリには数学定数が用意されていませんでした(`M_PI` などは拡張)。C++20 からは `` ヘッダが追加され、13 種類の数学定数の変数テンプレート宣言と、それらの `double` 型への特殊化の定義が提供されます。 +変数テンプレートは、標準ライブラリコンセプト `floating_point` を使って、`std::numbers` 名前空間に次のように宣言されます。 +```C++ +template +inline constexpr T pi_v = 3.141592653589793238462643383279502884L; +``` +合わせて `double` 型への特殊化の定義が次のような実装で提供されます。 +```C++ +inline constexpr double pi = pi_v; +``` +C++20 で追加される数学定数の一覧は次のとおりです。 + +| 定数名 | 説明 | binary128 に充分な精度を持つ値 | +|--------------|----------------|-----------------------------------------| +| e_v | e | 2.718281828459045235360287471352662498L | +| log2e_v | 2 を底とする e の対数 | 1.442695040888963407359924681001892137L | +| log10e_v | 10 を底とする e の対数 | 0.434294481903251827651128918916605082L | +| pi_v | 円周率 (π) | 3.141592653589793238462643383279502884L | +| inv_pi_v | 1/π | 0.318309886183790671537767526745028724L | +| inv_sqrtpi_v | 1/√π | 0.564189583547756286948079451560772586L | +| ln2_v | 2 の自然対数 | 0.693147180559945309417232121458176568L | +| ln10_v | 10 の自然対数 | 2.302585092994045684017991454684364208L | +| sqrt2_v | √2 | 1.414213562373095048801688724209698078L | +| sqrt3_v | √3 | 1.732050807568877293527446341505872366L | +| inv_sqrt3_v | 1/√3 | 0.577350269189625764509148780501957456L | +| egamma_v | オイラーの定数 | 0.577215664901532860606512090082402431L | +| phi_v | 黄金数 (φ) | 1.618033988749894848204586834365638117L | + +コードで使用する際は、`using` 宣言によって記述を短くできます。 + +```C++ +#include +#include + +int main() +{ + using std::numbers::pi; + using std::numbers::pi_v; + + std::cout << 2.0 * pi << '\n'; + std::cout << pi_v << '\n'; +} +``` \ No newline at end of file From 321338f279aadbeaf1abfd9f7a263255ab56dae0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 19 Aug 2019 13:33:10 +0900 Subject: [PATCH 026/457] fix --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 4cd890d..dab4333 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -910,7 +910,7 @@ int main() C++17 の標準ライブラリの規格では `std::decay_t` がおよそ 40 箇所で使われていましたが、そのうち cv 修飾の除去や参照の除去だけで十分な箇所について、実装の意図をより明確にするため `std::remove_reference_t` や、C++20 から導入される `std::remove_cvref_t` に置き換えられます。具体的には、`std::apply` や、`std::optional`, `std::variant` の一部のメンバ関数などで置き換えが発生します。 -### 数学定数をまとめた `` ヘッダ [(P0631R8)](https://wg21.link/P0631R8) +### 数学定数を提供する `` ヘッダ [(P0631R8)](https://wg21.link/P0631R8) これまで C++ の標準ライブラリには数学定数が用意されていませんでした(`M_PI` などは拡張)。C++20 からは `` ヘッダが追加され、13 種類の数学定数の変数テンプレート宣言と、それらの `double` 型への特殊化の定義が提供されます。 変数テンプレートは、標準ライブラリコンセプト `floating_point` を使って、`std::numbers` 名前空間に次のように宣言されます。 ```C++ From 36fc63c71771f97ab9570fff309731697e179af2 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 19 Aug 2019 13:36:08 +0900 Subject: [PATCH 027/457] fix --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index dab4333..2357717 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -911,7 +911,7 @@ C++17 の標準ライブラリの規格では `std::decay_t` がおよそ 40 箇 ### 数学定数を提供する `` ヘッダ [(P0631R8)](https://wg21.link/P0631R8) -これまで C++ の標準ライブラリには数学定数が用意されていませんでした(`M_PI` などは拡張)。C++20 からは `` ヘッダが追加され、13 種類の数学定数の変数テンプレート宣言と、それらの `double` 型への特殊化の定義が提供されます。 +これまで C++ の標準ライブラリには数学定数が用意されていませんでした(`M_PI` などは拡張)。C++20 からは数学定数をまとめた `` ヘッダが追加され、13 種類の数学定数の変数テンプレート宣言と、それらの `double` 型への特殊化の定義が提供されます。 変数テンプレートは、標準ライブラリコンセプト `floating_point` を使って、`std::numbers` 名前空間に次のように宣言されます。 ```C++ template From 66c0ed29d6c64cc60e38f395c2904fbbd45fbc67 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 19 Aug 2019 14:16:50 +0900 Subject: [PATCH 028/457] 2019-08 post-Cologne --- docs/standardization/meetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index a6e83a0..0f7fdea 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -28,7 +28,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 場所 / 提案 / 会議の結果 - [2019-07-15 to 20](https://wg21.link/n4783) / ケルン, ドイツ - [JTC1/SC22/WG21 - Papers 2019 mailing2019-06 pre-Cologne](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/#mailing2019-06) -- JTC1/SC22/WG21 - Papers 2019 mailing2019-08 post-Cologne +- [JTC1/SC22/WG21 - Papers 2019 mailing2019-08 post-Cologne](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/#mailing2019-08) #### 参加報告 - [2019-07 Cologne ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/cfk9de/201907_cologne_iso_c_committee_trip_report_the/) by Bryce Lelbach and others From a1384ea6ffd4d0151c1dc5a12b2db90ce00eea4d Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 19 Aug 2019 14:25:26 +0900 Subject: [PATCH 029/457] =?UTF-8?q?C++20=20=E3=83=AF=E3=83=BC=E3=82=AD?= =?UTF-8?q?=E3=83=B3=E3=82=B0=E3=83=89=E3=83=A9=E3=83=95=E3=83=88=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/working-drafts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index c5621f1..5639fea 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -4,4 +4,4 @@ description: C++ 規格のワーキングドラフトです - [C++11 最終ワーキングドラフト (N3337)](https://wg21.link/std11) | [HTML 版](https://timsong-cpp.github.io/cppwp/n3337/) - [C++14 最終ワーキングドラフト (N4140)](https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4140/) - [C++17 最終ワーキングドラフト (N4659)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4659/) -- [最新の C++20 ワーキングドラフト (N4810)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/n4810.pdf) | [HTML 版](http://eel.is/c++draft/) +- [最新の C++20 ワーキングドラフト (N4830)](https://wg21.link/N4830) | [HTML 版](http://eel.is/c++draft/) From d7f5d7437098b60117c39cb41fd1124538bfdb7b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 19 Aug 2019 14:36:56 +0900 Subject: [PATCH 030/457] =?UTF-8?q?Ideone=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tools/onlinecompilers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index 0a3a7ed..3c30a11 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -10,10 +10,10 @@ C++ プログラムのコンパイル、実行、共有ができる Web サイ |---------------------------------------------------------------|-----------------------------------------------------------------------------------------------|:------------:|:------------:|:------------:| | [Wandbox](https://wandbox.org/) |
  • GCC 4.4.7 - **10.0.0\***
  • Clang 3.1 - **9.0.0\***
  • | :fa-check: | | :fa-check: | | [Compiler Explorer](https://godbolt.org/)
    (Execution モード) |
  • GCC 4.7.3 - **10.0.0\***
  • Clang 3.3 - **9.0.0\***
  • ICC 16.0.3 - **19.0.1**
  • | :fa-check: | | | +| [Ideone](https://ideone.com/) |
  • GCC 8.3.0
  • | :fa-check: | | | | [GDB Online](https://www.onlinegdb.com/) |
  • GCC 7.4.0
  • | :fa-check: | :fa-check: | :fa-check: | | [repl.it](https://repl.it/languages/cpp) |
  • Clang 7.0.0
  • | :fa-check: | :fa-check: | :fa-check: | -| [paiza.io](https://paiza.io/ja/projects/new?language=cpp) |
  • Clang 7.0.0
  • | :fa-check: | | :fa-check: | -| [Ideone](https://ideone.com/) |
  • GCC 6.3.0
  • | :fa-check: | | | +| [paiza.io](https://paiza.io/ja/projects/new?language=cpp) |
  • Clang 7.0.0
  • | :fa-check: | | :fa-check: | [C++ Shell](http://cpp.sh/) |
  • GCC 4.9.2
  • | | :fa-check: | | * 印は trunk From a96e62191ca350d53aba37bfe6169d9cfa291be0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 21 Aug 2019 19:11:42 +0900 Subject: [PATCH 031/457] update --- docs/learn/studymeetings.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 6f0aa3d..4f286a7 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -14,8 +14,15 @@ description: 国内で開催されている C++ 関連の勉強会イベント - Twitter ハッシュタグ [#cppmix](https://twitter.com/search?q=%23cppmix) ### C++ MIX #5 [(2019-09-04)](https://cppmix.connpass.com/event/141908/) -| タイトル | 発表者 | ムービー | -|-----------|----------------------|---------| +| タイトル | 発表者 | ムービー | +|-----------------------------|-----------------|------| +| 勉強会と会場の説明 | Shintaro Okada | | +| 自作OS向けにlibc++をビルドする方法 | uchan | | +| C++ 製グラフィックライブラリ Skia の紹介 | 水音ぴね | | +| Unreal C++ を始めてみた時の躓いたTips | akoto | | +| C++20ステータス | Akira Takahashi | | +| 20分くらいでわかった気分になれるC++20コルーチン | yohhoy | | +| ディスカッション | (全員参加) | | ### C++ MIX #4 [(2019-06-26)](https://cppmix.connpass.com/event/132145/) @@ -110,7 +117,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | | +| #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | | #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | From d26263e69d19889ecc4f7b353a3ad81911bb33ce Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 29 Aug 2019 22:45:55 +0900 Subject: [PATCH 032/457] =?UTF-8?q?caddicpp=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 4f286a7..34b67d7 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -117,6 +117,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #3 [(2019-08-30)](https://caddi.connpass.com/event/145070/) | メタプログラミング | | | #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | | #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | From 34e3eccd68631a2fa1d439282eafd69ee34702ba Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 7 Sep 2019 17:30:12 +0900 Subject: [PATCH 033/457] =?UTF-8?q?C++MIX=205=20=E8=AC=9B=E6=BC=94?= =?UTF-8?q?=E8=B3=87=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 34b67d7..27b4e96 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -18,10 +18,10 @@ description: 国内で開催されている C++ 関連の勉強会イベント |-----------------------------|-----------------|------| | 勉強会と会場の説明 | Shintaro Okada | | | 自作OS向けにlibc++をビルドする方法 | uchan | | -| C++ 製グラフィックライブラリ Skia の紹介 | 水音ぴね | | -| Unreal C++ を始めてみた時の躓いたTips | akoto | | -| C++20ステータス | Akira Takahashi | | -| 20分くらいでわかった気分になれるC++20コルーチン | yohhoy | | +| [C++ 製グラフィックライブラリ Skia の紹介](https://speakerdeck.com/pine/c-plus-plus-zhi-kurahuitukuraihurari-skia-falseshao-jie) | 水音ぴね | | +| [Unreal C++ を始めてみた時の躓いたTips](https://www.slideshare.net/MakotoAdachi/cmix5) | akoto | | +| [C++20ステータス](https://speakerdeck.com/faithandbrave/c-plus-plus-20-status) | Akira Takahashi | | +| [20分くらいでわかった気分になれるC++20コルーチン](https://www.slideshare.net/yohhoy/20c20) | yohhoy | | | ディスカッション | (全員参加) | | From 9217ebbb3962d23e43f68b87ee879079c60ef0fd Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 9 Sep 2019 11:07:54 +0900 Subject: [PATCH 034/457] =?UTF-8?q?caddicpp=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 27b4e96..b028739 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -117,6 +117,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #4 [(2019-09-09)](https://caddi.connpass.com/event/146040/) | C++ 標準規格の用語解説 | | | #3 [(2019-08-30)](https://caddi.connpass.com/event/145070/) | メタプログラミング | | | #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | | #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | From 0824219b71d547fdccccc9b97cc488846576c1a7 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 9 Sep 2019 11:09:19 +0900 Subject: [PATCH 035/457] =?UTF-8?q?C++20=20=E3=81=AB=E5=85=A5=E3=82=89?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=81=93=E3=81=A8=E3=81=AB=E3=81=AA=E3=81=A3?= =?UTF-8?q?=E3=81=9F=20P0920R2=20=E3=82=92=E9=99=A4=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cpp20.md | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 2357717..48bfff4 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -620,32 +620,6 @@ int main() ``` -### 非順序連想コンテナのルックアップ操作に、計算済みハッシュ値を渡せるように [(P0920R2)](https://wg21.link/P0920R2) -同じ種類の非順序連想コンテナを複数扱い、同じキーを用いたルックアップ操作をそれらのコンテナに対して行うようなケースでは、キーのハッシュ値の計算を毎回行うのは冗長です。C++20 ではメンバ関数 `find()`, `count()`, `contains()`, `equal_range()` に、計算済みのハッシュ値を渡せるオーバーロードが追加されます。 -```C++ -#include -#include -#include -#include - -int main() -{ - std::array, 10> maps = { /*...*/ }; - - const std::string key = "key"; - - const auto hash = maps.front().hash_function()(key); - - for (auto& map : maps) - { - auto it = map.find(key, hash); - - // ... - } -} -``` - - ### 2 つの値の中点を計算する `std::midpoint()` 関数 [(P0811R3)](https://wg21.link/P0811R3) 2 つの値 `a`, `b` の中点を計算する際に、単純な `(a + b) / 2` という式ではオーバーフローを起こす可能性があります。C++20 で追加される `std::midpoint()` 関数では、整数に対して ```C++ From 15effd70529ab5c0d6554ffd8b33caadc5e838ff Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 9 Sep 2019 15:04:18 +0900 Subject: [PATCH 036/457] =?UTF-8?q?=E6=9C=9F=E6=97=A5=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index b028739..3a47550 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -117,7 +117,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #4 [(2019-09-09)](https://caddi.connpass.com/event/146040/) | C++ 標準規格の用語解説 | | +| #4 [(2019-09-11)](https://caddi.connpass.com/event/146786/) | C++ 標準規格の用語解説 | | | #3 [(2019-08-30)](https://caddi.connpass.com/event/145070/) | メタプログラミング | | | #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | | #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | From 17069d7f7ba9cab38650cd90072f347e02521cbc Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 10 Sep 2019 01:42:26 +0900 Subject: [PATCH 037/457] =?UTF-8?q?=E6=9B=B8=E7=B1=8D=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/books.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/learn/books.md b/docs/learn/books.md index fafe85c..1fccce2 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -20,6 +20,8 @@ C++ の学習に役立つ書籍を紹介します。 | [江添亮の詳説 C++17](https://amzn.to/2HmVw42) | 2018 | C++17 | C++14/17 の新しい文法と標準ライブラリ機能を詳細に解説。[オープンソース版](https://ezoeryou.github.io/cpp17book/) | | [冒険で学ぶはじめてのプログラミング](https://amzn.to/2IWnWnx) | 2018 | C++17 | :fa-graduation-cap: 初学者向け。早稲田大学が運営する中学・高校生向け C++ 入門講座の教科書。[紹介ページ](https://enrect.org/cppbook/) | | [Modern C++ チャレンジ ― C++17 プログラミング力を鍛える 100 問](https://amzn.to/2EMsIP8) | 2019 | C++17/20 | 現実的・実践的な 100 の課題を C++ で解決する問題集。オープンソースライブラリを積極的に活用する | +| [江添亮の C++ 入門](https://amzn.to/2HTGUbt) | 2019 | C++17/20 | プログラミング経験者が C++ を網羅的に学べる解説書。[オープンソース版](https://ezoeryou.github.io/cpp-intro/) | +| [独習 C++ 新版](https://amzn.to/2ZWRrck) | 2019 | C++17 | :fa-graduation-cap: 初学者向け。「独習 C++ 第 4 版」を C++17 に対応させ解説も一新 | ## 洋書 From d84bb5fa5fb4a1b95d7d74938b500d2425ca6783 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 10 Sep 2019 01:54:00 +0900 Subject: [PATCH 038/457] =?UTF-8?q?=E8=AA=AC=E6=98=8E=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/books.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 1fccce2..ed1cfb3 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -20,7 +20,7 @@ C++ の学習に役立つ書籍を紹介します。 | [江添亮の詳説 C++17](https://amzn.to/2HmVw42) | 2018 | C++17 | C++14/17 の新しい文法と標準ライブラリ機能を詳細に解説。[オープンソース版](https://ezoeryou.github.io/cpp17book/) | | [冒険で学ぶはじめてのプログラミング](https://amzn.to/2IWnWnx) | 2018 | C++17 | :fa-graduation-cap: 初学者向け。早稲田大学が運営する中学・高校生向け C++ 入門講座の教科書。[紹介ページ](https://enrect.org/cppbook/) | | [Modern C++ チャレンジ ― C++17 プログラミング力を鍛える 100 問](https://amzn.to/2EMsIP8) | 2019 | C++17/20 | 現実的・実践的な 100 の課題を C++ で解決する問題集。オープンソースライブラリを積極的に活用する | -| [江添亮の C++ 入門](https://amzn.to/2HTGUbt) | 2019 | C++17/20 | プログラミング経験者が C++ を網羅的に学べる解説書。[オープンソース版](https://ezoeryou.github.io/cpp-intro/) | +| [江添亮の C++ 入門](https://amzn.to/2HTGUbt) | 2019 | C++17/20 | C++ のツールや文法、いくつかの標準ライブラリの設計を学べる解説書。[オープンソース版](https://ezoeryou.github.io/cpp-intro/) | | [独習 C++ 新版](https://amzn.to/2ZWRrck) | 2019 | C++17 | :fa-graduation-cap: 初学者向け。「独習 C++ 第 4 版」を C++17 に対応させ解説も一新 | From b0a22dba3f651cd6a5bdf2059e572b5e90d4d4a4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 10 Sep 2019 13:04:57 +0900 Subject: [PATCH 039/457] update --- docs/learn/books.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index ed1cfb3..698275a 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -20,8 +20,8 @@ C++ の学習に役立つ書籍を紹介します。 | [江添亮の詳説 C++17](https://amzn.to/2HmVw42) | 2018 | C++17 | C++14/17 の新しい文法と標準ライブラリ機能を詳細に解説。[オープンソース版](https://ezoeryou.github.io/cpp17book/) | | [冒険で学ぶはじめてのプログラミング](https://amzn.to/2IWnWnx) | 2018 | C++17 | :fa-graduation-cap: 初学者向け。早稲田大学が運営する中学・高校生向け C++ 入門講座の教科書。[紹介ページ](https://enrect.org/cppbook/) | | [Modern C++ チャレンジ ― C++17 プログラミング力を鍛える 100 問](https://amzn.to/2EMsIP8) | 2019 | C++17/20 | 現実的・実践的な 100 の課題を C++ で解決する問題集。オープンソースライブラリを積極的に活用する | -| [江添亮の C++ 入門](https://amzn.to/2HTGUbt) | 2019 | C++17/20 | C++ のツールや文法、いくつかの標準ライブラリの設計を学べる解説書。[オープンソース版](https://ezoeryou.github.io/cpp-intro/) | -| [独習 C++ 新版](https://amzn.to/2ZWRrck) | 2019 | C++17 | :fa-graduation-cap: 初学者向け。「独習 C++ 第 4 版」を C++17 に対応させ解説も一新 | +| [江添亮の C++ 入門](https://amzn.to/2HTGUbt) | 2019 | C++17/20 | C++ のツールや文法、いくつかの標準ライブラリ機能の設計を学べる解説書。[オープンソース版](https://ezoeryou.github.io/cpp-intro/) | +| [独習 C++ 新版](https://amzn.to/2ZWRrck) | 2019 | C++17 | :fa-graduation-cap: 初学者向け。「独習 C++ 第 4 版」を C++17 に対応させ解説を一新 | ## 洋書 From 17d28d4eea2be96b7bd3d4e8648c6f3475810430 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 10 Sep 2019 23:46:06 +0900 Subject: [PATCH 040/457] =?UTF-8?q?C++20=20=E3=82=92=E7=9B=B8=E8=AB=87?= =?UTF-8?q?=E3=81=97=E3=81=AA=E3=81=8C=E3=82=89=E8=AA=BF=E3=81=B9=E3=82=8B?= =?UTF-8?q?=E4=BC=9A=203=20=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 3a47550..78624ec 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -106,6 +106,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 参加者間の共有ドキュメント | |-------------------------------------------------------------------|------------------------------------------------------------------------------------------------| +| #3 [(2019-10-04)](https://cpp20survey.connpass.com/event/147002/) | | | #2 [(2019-05-17)](https://cpp20survey.connpass.com/event/126691/) | [ドキュメント](https://docs.google.com/document/d/1t80gHDimmcltJSOZjUocApuB5ylqTKnZzX5Rkq_HY4s/edit) | | #1 [(2019-04-02)](https://cpp20survey.connpass.com/event/124051/) | [ドキュメント](https://docs.google.com/document/d/1is2E5wOYo8oHrsI4OJNLNPmSRpeX-0GyGIrqIhfSB5U/edit) | From b88220c89f2bf10442d5c9a80bccf35201163fbf Mon Sep 17 00:00:00 2001 From: Takuya OKADA Date: Thu, 12 Sep 2019 21:55:38 +0900 Subject: [PATCH 041/457] =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=87=E3=82=A3?= =?UTF-8?q?=E5=8B=89=E5=BC=B7=E4=BC=9A=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit youtubeリンクの追加 --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 78624ec..50f8ccb 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -118,7 +118,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #4 [(2019-09-11)](https://caddi.connpass.com/event/146786/) | C++ 標準規格の用語解説 | | +| #4 [(2019-09-11)](https://caddi.connpass.com/event/146786/) | C++ 標準規格の用語解説 | [:fa-play:](https://youtu.be/OYBLK4Lwudw) | | #3 [(2019-08-30)](https://caddi.connpass.com/event/145070/) | メタプログラミング | | | #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | | #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | From 03d5c8385350b73f8d5c70b23c7d119eb27c03c3 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 12 Sep 2019 22:25:53 +0900 Subject: [PATCH 042/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF=20=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 5cc56ce..c69d465 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -32,6 +32,8 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/19) - [C++20 の新機能 記事加筆](https://github.com/cppmap/cppmap.docs/pull/20) - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/21) +- [@tak0kada](https://twitter.com/tak0kada) さん + - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/26) - [@tetzrom](https://twitter.com/tetzrom) さん - [オンライン資料 情報提供](https://github.com/cppmap/cppmap.docs/pull/15) - [@wolf_cpp](https://twitter.com/wolf_cpp) さん From 8daff92573d7962629ddcb4beff9d6b7afe0109c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 19 Sep 2019 22:04:19 +0900 Subject: [PATCH 043/457] caddicpp 5 --- docs/learn/studymeetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 50f8ccb..276c619 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -118,6 +118,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #5 [(2019-09-25)](https://caddi.connpass.com/event/147690/) | 標準変換、オーバーロード解決、テンプレートの実引数推定 | | | #4 [(2019-09-11)](https://caddi.connpass.com/event/146786/) | C++ 標準規格の用語解説 | [:fa-play:](https://youtu.be/OYBLK4Lwudw) | | #3 [(2019-08-30)](https://caddi.connpass.com/event/145070/) | メタプログラミング | | | #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | From 9c1df826703b14cbf7dfc502aadded66b51c3c2c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 19 Sep 2019 22:05:30 +0900 Subject: [PATCH 044/457] =?UTF-8?q?trip=20report=20=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 0f7fdea..3eabe37 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -36,6 +36,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [Trip Report: C++ Standards Meeting in Cologne, July 2019](https://botondballo.wordpress.com/2019/07/26/trip-report-c-standards-meeting-in-cologne-july-2019/) by Botond Ballo - [The German tour: Cologne trip report](https://hatcat.com/?p=86) by Guy Davidson - [Trip report: July 2019 ISO C++ committee meeting, Cologne, Germany](http://timur.audio/trip-report-july-2019-iso-c-committee-meeting-cologne-germany) by Timur Doumler +- [Trip Report: ISO C++ Meeting Cologne (2019)](https://www.silexica.com/news/iso_cpp_meeting_2019/) by Matthias Gehre #### 解説 `std::format` や `constexpr vector`, `using enum`, `constinit` など、前回の会議までにおおよそ完成していた多数の提案が C++20 ドラフト入りしました。一方で、2018 年にドラフト入りしていた Contracts は大幅な設計の見直しが発生し、C++20 での導入をキャンセルして Study Group で議論を続けることが決まりました。 From d38abb78b864b83dbc09a8d840fc3ef2e4dffe4c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 19 Sep 2019 22:16:40 +0900 Subject: [PATCH 045/457] =?UTF-8?q?=E7=95=A5=E8=AA=9E=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/articles/acronyms.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/articles/acronyms.md b/docs/articles/acronyms.md index 758dc45..2734c47 100644 --- a/docs/articles/acronyms.md +++ b/docs/articles/acronyms.md @@ -17,6 +17,9 @@ C および C++ ユーザ協会。[年次カンファレンス](https://conferen ### API | Application Programming Interface アプリケーション・プログラミング・インタフェース +### ASan | AddressSanitizer +メモリ関連のエラーを検出する動的解析ツール + ### BCC | Borland C++ Compiler 現在の Embarcadero C++ Builder の前身。2000 年にリリースされた Borland C++ Compiler 5.5 は、当時はめずらしい無償の C++ コンパイラとして、広く使われた。 @@ -53,6 +56,9 @@ C++ 標準化委員会のワーキンググループの 1 つ。言語機能に ### DIS | Draft International Standard 国際規格案 +### DR | Defect Report +規格の欠陥の報告 + ### EBO | Empty Base Optimization 空の基底クラスの最適化 From d74d99ff6949b72cf0c74789aa15a1137bfafc83 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 19 Sep 2019 22:49:17 +0900 Subject: [PATCH 046/457] =?UTF-8?q?=E6=B4=8B=E6=9B=B8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/books.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 698275a..77c1282 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -30,7 +30,8 @@ C++ の学習に役立つ書籍を紹介します。 | [C++ Templates: The Complete Guide (2nd Edition)](https://amzn.to/2TnVa4h) | 2017 | C++17/20 | C++17 のテンプレートの文法や様々なテクニックを解説。C++20 で導入されるコンセプトの紹介も。 [目次](https://www.oreilly.com/library/view/c-templates-the/9780134778808/) | | [Mastering the C++17 STL](https://amzn.to/2tYz4X1) | 2017 | C++17 | C++17 までの標準ライブラリの機能や使い方を紹介。[目次](https://www.packtpub.com/application-development/mastering-c17-stl) | | [C++ Concurrency in Action, Second Edition](https://amzn.to/2J2y26G) | 2019 | C++17 | C++17 における並行処理を詳細に解説。ロックフリーデータ構造の設計なども取り上げる。[試し読み](https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition) | -| [C++17 in Detail](https://leanpub.com/cpp17indetail) | 2019 | C++17 | C++17 の主要な新機能・変更点のほか、Boost から標準ライブラリへの移行を解説。[目次](https://leanpub.com/cpp17indetail) | +| [C++17 in Detail](https://amzn.to/308p8fO) | 2019 | C++17 | C++17 の主要な新機能・変更点のほか、Boost から標準ライブラリへの移行を解説。[目次](https://leanpub.com/cpp17indetail) | +| [C++17 - The Complete Guide](http://www.cppstd17.com/) | 2019 | C++17 | [目次](http://www.cppstd17.com/) | From 29a4fe6ce474f5470a6a604ac7d865d7d166d6bc Mon Sep 17 00:00:00 2001 From: onihusube Date: Sun, 22 Sep 2019 17:27:22 +0900 Subject: [PATCH 047/457] =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E8=AA=BF=E6=95=B4=20#23?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 70 ++++++++++++++++---------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 3eabe37..18a2eca 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -51,9 +51,9 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 参加報告 - [2019-02 Kona ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/au0c4x/201902_kona_iso_c_committee_trip_report_c20/) by Bryce Lelbach and others - [Trip report: Winter ISO C++ standards meeting (Kona)](https://herbsutter.com/2019/02/23/trip-report-winter-iso-c-standards-meeting-kona/) by Herb Sutter -- [Kona: A trip report](https://cor3ntin.github.io/posts/kona2019/) by Corentin +- [Kona: A trip report](https://cor3ntin.github.io/posts/kona2019/) by Corentin - [Trip report: February 2019 ISO C++ committee meeting, Kona, Hawai’i](http://timur.audio/trip-report-february-2019-iso-c-committee-meeting-kona-hawaii) by Timur Doumler -- [Telescopes and matrices and audio: Kona trip report](https://hatcat.com/?p=69) by Guy Davidson +- [Telescopes and matrices and audio: Kona trip report](https://hatcat.com/?p=69) by Guy Davidson - [Trip Report: Freestanding (and Modules) in Kona](https://www.reddit.com/r/cpp/comments/ax1z2y/trip_report_freestanding_and_modules_in_kona/) by Bryce Lelbach - [Trip Report: C++ Standards Meeting in Kona, February 2019](https://botondballo.wordpress.com/2019/03/20/trip-report-c-standards-meeting-in-kona-february-2019/) by Botond Ballo @@ -69,8 +69,8 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [JTC1/SC22/WG21 - Papers 2018 mailing2018-11 post-San Diego](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/#mailing2018-11) #### 参加報告 -- [2018 San Diego ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/9vwvbz/2018_san_diego_iso_c_committee_trip_report_ranges/) by Bryce Lelbach and others -- [Trip report: Fall ISO C++ standards meeting (San Diego)](https://herbsutter.com/2018/11/13/trip-report-fall-iso-c-standards-meeting-san-diego/) by Herb Sutter +- [2018 San Diego ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/9vwvbz/2018_san_diego_iso_c_committee_trip_report_ranges/) by Bryce Lelbach and others +- [Trip report: Fall ISO C++ standards meeting (San Diego)](https://herbsutter.com/2018/11/13/trip-report-fall-iso-c-standards-meeting-san-diego/) by Herb Sutter - [Fall 2018 ISO WG21 C++ Standards Committee meeting trip report](https://developers.redhat.com/blog/2019/01/10/fall-2018-iso-wg21-c-standards-committee-meeting-trip-report/) #### 解説 @@ -83,8 +83,8 @@ Range ライブラリの C++20 入りが決まったほか、コンセプトの - [JTC1/SC22/WG21 - Papers 2018 mailing2018-06 post-Rapperswil](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/#mailing2018-06) #### 参加報告 -- [2018 Rapperswil ISO C++ Committee Trip Report (Contracts for C++20; Parallelism TS v2 published; Draft Reflection TS)](https://www.reddit.com/r/cpp/comments/8prqzm/2018_rapperswil_iso_c_committee_trip_report/) by Bryce Lelbach and others -- [Trip report: Summer ISO C++ standards meeting (Rapperswil)](https://herbsutter.com/2018/07/02/trip-report-summer-iso-c-standards-meeting-rapperswil/) by Herb Sutter +- [2018 Rapperswil ISO C++ Committee Trip Report (Contracts for C++20; Parallelism TS v2 published; Draft Reflection TS)](https://www.reddit.com/r/cpp/comments/8prqzm/2018_rapperswil_iso_c_committee_trip_report/) by Bryce Lelbach and others +- [Trip report: Summer ISO C++ standards meeting (Rapperswil)](https://herbsutter.com/2018/07/02/trip-report-summer-iso-c-standards-meeting-rapperswil/) by Herb Sutter #### 解説 属性構文による Contracts (契約プログラミング) の C++20 入りが決まったほか、STL へのコンセプトライブラリの追加、任意のクラス型の非型テンプレートパラメータとしての利用、定数式での仮想関数呼び出しの許可、`explicit(bool)` などが承認されました。 @@ -96,8 +96,8 @@ Range ライブラリの C++20 入りが決まったほか、コンセプトの - [JTC1/SC22/WG21 - Papers 2018 mailing2018-04 post-Jacksonville](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/#mailing2018-04) #### 参加報告 -- [2018 Jacksonville ISO C++ Committee Reddit Trip Report](https://www.reddit.com/r/cpp/comments/854mu9/2018_jacksonville_iso_c_committee_reddit_trip/) by Bryce Lelbach and others -- [Trip report: Winter ISO C++ standards meeting (Jacksonville)](https://herbsutter.com/2018/07/02/trip-report-summer-iso-c-standards-meeting-rapperswil/) by Herb Sutter +- [2018 Jacksonville ISO C++ Committee Reddit Trip Report](https://www.reddit.com/r/cpp/comments/854mu9/2018_jacksonville_iso_c_committee_reddit_trip/) by Bryce Lelbach and others +- [Trip report: Winter ISO C++ standards meeting (Jacksonville)](https://herbsutter.com/2018/07/02/trip-report-summer-iso-c-standards-meeting-rapperswil/) by Herb Sutter #### 解説 `` へのカレンダーライブラリの追加、``, `no_unique_address` や `likely/unlikely` 属性構文の追加などが承認されました。 @@ -109,8 +109,8 @@ Range ライブラリの C++20 入りが決まったほか、コンセプトの - [JTC1/SC22/WG21 - Papers 2017 mailing2017-11 post-Albuquerque](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017#mailing2017-11) #### 参加報告 -- [2018 Jacksonville ISO C++ Committee Reddit Trip Report](https://www.reddit.com/r/cpp/comments/854mu9/2018_jacksonville_iso_c_committee_reddit_trip/) by Bryce Lelbach and others -- [Trip report: Fall ISO C++ standards meeting (Albuquerque)](https://herbsutter.com/2017/11/11/trip-report-fall-iso-c-standards-meeting-albuquerque/) by Herb Sutter +- [2018 Jacksonville ISO C++ Committee Reddit Trip Report](https://www.reddit.com/r/cpp/comments/854mu9/2018_jacksonville_iso_c_committee_reddit_trip/) by Bryce Lelbach and others +- [Trip report: Fall ISO C++ standards meeting (Albuquerque)](https://herbsutter.com/2017/11/11/trip-report-fall-iso-c-standards-meeting-albuquerque/) by Herb Sutter #### 解説 三方比較演算子 `<=>` とそのライブラリサポート、標準ライブラリ関数のさらなる `constexpr` 対応、初期化式をともなう範囲 for 文などの C++20 入りが承認されました。 @@ -122,8 +122,8 @@ Range ライブラリの C++20 入りが決まったほか、コンセプトの - [JTC1/SC22/WG21 - Papers 2017 mailing2017-07 post-Toronto](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017#mailing2017-07) #### 参加報告 -- [2017 Toronto ISO C++ Committee Discussion Thread (Concepts in C++20; Coroutines, Ranges and Networking TSes published)](https://www.reddit.com/r/cpp/comments/6ngkgc/2017_toronto_iso_c_committee_discussion_thread/) by Bryce Lelbach and others -- [Trip report: Summer ISO C++ standards meeting (Toronto)](https://herbsutter.com/2017/07/15/trip-report-summer-iso-c-standards-meeting-toronto/) by Herb Sutter +- [2017 Toronto ISO C++ Committee Discussion Thread (Concepts in C++20; Coroutines, Ranges and Networking TSes published)](https://www.reddit.com/r/cpp/comments/6ngkgc/2017_toronto_iso_c_committee_discussion_thread/) by Bryce Lelbach and others +- [Trip report: Summer ISO C++ standards meeting (Toronto)](https://herbsutter.com/2017/07/15/trip-report-summer-iso-c-standards-meeting-toronto/) by Herb Sutter - [Trip Report: C++ Standards Meeting in Toronto, July 2017](https://botondballo.wordpress.com/2017/08/02/trip-report-c-standards-meeting-in-toronto-july-2017/) #### 解説 @@ -137,8 +137,8 @@ C++20 に関する最初の会議です。コンセプト、Designated Initializ #### 参加報告 -- [Trip report: Winter ISO C++ standards meeting (Kona), C++17 is complete](https://herbsutter.com/2017/03/24/trip-report-winter-iso-c-standards-meeting-kona-c17-is-complete/) by Herb Sutter -- [Red Hat at the ISO C++ Standards Meeting (April 2017, Kona): Core Language](https://developers.redhat.com/blog/2017/06/27/red-hat-at-the-iso-c-standards-meeting-april-2017-kona-core-language/) by Jason Merrill +- [Trip report: Winter ISO C++ standards meeting (Kona), C++17 is complete](https://herbsutter.com/2017/03/24/trip-report-winter-iso-c-standards-meeting-kona-c17-is-complete/) by Herb Sutter +- [Red Hat at the ISO C++ Standards Meeting (April 2017, Kona): Core Language](https://developers.redhat.com/blog/2017/06/27/red-hat-at-the-iso-c-standards-meeting-april-2017-kona-core-language/) by Jason Merrill #### 解説 C++17 について議論する最後の会議で、この会議によって C++17 規格が完成しました。 @@ -154,9 +154,9 @@ C++17 について議論する最後の会議で、この会議によって C++1 - [JTC1/SC22/WG21 - Papers 2016 mailing2016-11 post-Issaquah](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/#mailing2016-11) #### 参加報告 -- [Trip report: Fall ISO C++ standards meeting (Issaquah)](https://herbsutter.com/2016/11/15/trip-report-fall-iso-c-standards-meeting-issaquah/) by Herb Sutter +- [Trip report: Fall ISO C++ standards meeting (Issaquah)](https://herbsutter.com/2016/11/15/trip-report-fall-iso-c-standards-meeting-issaquah/) by Herb Sutter - [2016 Issaquah ISO C++ Committee Meeting Live Thread](https://www.reddit.com/r/cpp/comments/5chf36/2016_issaquah_iso_c_committee_meeting_live_thread/) -- [The view from Nov 2016 C++ Standard Meeting Issaquah](https://www.codeplay.com/portal/12-09-16-the-view-from-nov-2016-cpp-standard-meeting-issaquah) by Michael Wong +- [The view from Nov 2016 C++ Standard Meeting Issaquah](https://www.codeplay.com/portal/12-09-16-the-view-from-nov-2016-cpp-standard-meeting-issaquah) by Michael Wong #### 解説 `using` 宣言でのパラメータパック展開、古い例外仕様 `throw()` の削除、`` 等が承認されました。 @@ -169,9 +169,9 @@ C++17 について議論する最後の会議で、この会議によって C++1 - [JTC1/SC22/WG21 - Papers 2016 mailing2016-07 post-Oulu](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/#mailing2016-07) #### 参加報告 -- [Trip report: Summer ISO C++ standards meeting (Oulu)](https://herbsutter.com/2016/06/30/trip-report-summer-iso-c-standards-meeting-oulu/) by Herb Sutter -- [Red Hat at the ISO C++ Standards Meeting (June 2016, Oulu): Library](https://developers.redhat.com/blog/2016/07/18/red-hat-at-the-iso-c-standards-meeting-june-2016-oulu-library/) by Jonathan Wakely -- [C++17, All Final Features from Oulu in a Few Slides](https://www.codeplay.com/portal/c17-all-final-features-from-oulu-in-a-few-slides) by Michael Wong +- [Trip report: Summer ISO C++ standards meeting (Oulu)](https://herbsutter.com/2016/06/30/trip-report-summer-iso-c-standards-meeting-oulu/) by Herb Sutter +- [Red Hat at the ISO C++ Standards Meeting (June 2016, Oulu): Library](https://developers.redhat.com/blog/2016/07/18/red-hat-at-the-iso-c-standards-meeting-june-2016-oulu-library/) by Jonathan Wakely +- [C++17, All Final Features from Oulu in a Few Slides](https://www.codeplay.com/portal/c17-all-final-features-from-oulu-in-a-few-slides) by Michael Wong #### 解説 コア言語機能として、クラステンプレートのテンプレート引数推論(deduction guide)、インライン変数、`constexpr if`, 構造化束縛、if 文や switch 文での初期化式と条件式の分離、コピー省略保証、式の評価順序の厳密化、`std::launder` 等が承認されました。 @@ -184,9 +184,9 @@ C++17 について議論する最後の会議で、この会議によって C++1 - [JTC1/SC22/WG21 - Papers 2016 mailing2016-03 post-Jacksonville](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/#mailing2016-03) #### 参加報告 -- [Trip report: Winter ISO C++ standards meeting](https://herbsutter.com/2016/03/11/trip-report-winter-iso-c-standards-meeting/) by Herb Sutter -- [Trip Report: C++ Standards Meeting in Jacksonville, February 2016](https://botondballo.wordpress.com/2016/03/21/trip-report-c-standards-meeting-in-jacksonville-february-2016/) by Botond Ballo -- [Trip report: C++ meeting at Jacksonville](https://usingstdcpp.org/2016/03/05/trip-report-c-meeting-at-jacksonville/) by J. Daniel Garcia +- [Trip report: Winter ISO C++ standards meeting](https://herbsutter.com/2016/03/11/trip-report-winter-iso-c-standards-meeting/) by Herb Sutter +- [Trip Report: C++ Standards Meeting in Jacksonville, February 2016](https://botondballo.wordpress.com/2016/03/21/trip-report-c-standards-meeting-in-jacksonville-february-2016/) by Botond Ballo +- [Trip report: C++ meeting at Jacksonville](https://usingstdcpp.org/2016/03/05/trip-report-c-meeting-at-jacksonville/) by J. Daniel Garcia #### 解説 16 進浮動小数点リテラル、constexpr ラムダ、属性構文 `[[fallthrough]]`, `[[nodiscard]]`, `[[maybe_unused]]` のほか、標準ライブラリに `std::any`, `std::optional`, `std::string_view`, ``, ``, 並列アルゴリズム、数学の特殊関数等を追加することが承認されました。 @@ -198,8 +198,8 @@ C++17 について議論する最後の会議で、この会議によって C++1 - [JTC1/SC22/WG21 - Papers 2015 mailing2015-11 post-Kona](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/#mailing2015-11) #### 参加報告 -- [Trip report: Fall 2015 ISO C++ standards meeting](https://herbsutter.com/2015/10/25/2568/) by Herb Sutter -- [Trip Report: C++ Standards Meeting in Kona, October 2015](https://botondballo.wordpress.com/2015/11/09/trip-report-c-standards-meeting-in-kona-october-2015/) by J. Daniel Garcia +- [Trip report: Fall 2015 ISO C++ standards meeting](https://herbsutter.com/2015/10/25/2568/) by Herb Sutter +- [Trip Report: C++ Standards Meeting in Kona, October 2015](https://botondballo.wordpress.com/2015/11/09/trip-report-c-standards-meeting-in-kona-october-2015/) by J. Daniel Garcia - [C++17 progress update! (Oct 2015)](https://www.reddit.com/r/cpp/comments/3q4agc/c17_progress_update_oct_2015/) #### 解説 @@ -212,9 +212,9 @@ C++17 について議論する最後の会議で、この会議によって C++1 - [JTC1/SC22/WG21 - Papers 2015 mailing2015-05 post-Lenexa](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/#mailing2015-05) #### 参加報告 -- [Trip report: Spring ISO C++ meeting](https://isocpp.org/blog/2015/06/trip-report-spring-iso-cpp-meeting) by Herb Sutter -- [Trip Report: C++ Standards Meeting in Lenexa, May 2015](https://botondballo.wordpress.com/2015/06/05/trip-report-c-standards-meeting-in-lenexa-may-2015/) by J. Daniel Garcia -- [Lenexa C++ Meeting Report (Core Language)](https://developers.redhat.com/blog/2015/06/10/lenexa-c-meeting-report-core-language/) by Jason Merrill +- [Trip report: Spring ISO C++ meeting](https://isocpp.org/blog/2015/06/trip-report-spring-iso-cpp-meeting) by Herb Sutter +- [Trip Report: C++ Standards Meeting in Lenexa, May 2015](https://botondballo.wordpress.com/2015/06/05/trip-report-c-standards-meeting-in-lenexa-may-2015/) by J. Daniel Garcia +- [Lenexa C++ Meeting Report (Core Language)](https://developers.redhat.com/blog/2015/06/10/lenexa-c-meeting-report-core-language/) by Jason Merrill - [C++17 progress update!](https://www.reddit.com/r/cpp/comments/35g7f6/c17_progress_update/) #### 解説 @@ -233,9 +233,9 @@ C++17 について議論する最後の会議で、この会議によって C++1 - [JTC1/SC22/WG21 - Papers 2014 mailing2014-11 post-Urbana](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/#mailing2014-11) #### 参加報告 -- [Trip Report: Fall ISO C++ Meeting](https://isocpp.org/blog/2014/11/trip-report-fall) by Herb Sutter -- [Trip Report: C++ Standards Meeting in Urbana-Champaign, November 2014](https://botondballo.wordpress.com/2014/11/23/trip-report-c-standards-meeting-in-urbana-champaign-november-2014/) by J. Daniel Garcia -- [Red Hat at the ISO C++ Standards Meeting (November 2014): Library](https://developers.redhat.com/blog/2014/12/16/red-hat-at-the-iso-c-standards-meeting-november-2014-library/) by Jason Merrill +- [Trip Report: Fall ISO C++ Meeting](https://isocpp.org/blog/2014/11/trip-report-fall) by Herb Sutter +- [Trip Report: C++ Standards Meeting in Urbana-Champaign, November 2014](https://botondballo.wordpress.com/2014/11/23/trip-report-c-standards-meeting-in-urbana-champaign-november-2014/) by J. Daniel Garcia +- [Red Hat at the ISO C++ Standards Meeting (November 2014): Library](https://developers.redhat.com/blog/2014/12/16/red-hat-at-the-iso-c-standards-meeting-november-2014-library/) by Jason Merrill #### 解説 C++14 規格完成後の最初の会議です。 @@ -249,8 +249,8 @@ C++14 規格完成後の最初の会議です。 - [JTC1/SC22/WG21 - Papers 2014 mailing2014-07 post-Rapperswil](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/#mailing2014-07) #### 参加報告 -- [Trip Report: C++ Standards Meeting in Urbana-Champaign, November 2014](http://www.theres-waldo.ca/2014/07/17/trip-report-c-standards-committee-meeting-in-rapperswil-june-2014/) by J. Daniel Garcia -- [Red Hat at the ISO C++ Standards Meeting (November 2014): Library](https://developers.redhat.com/blog/2014/08/21/iso-cxx-meeting-rapperswil-2014-core-library/) by Jonathan Wakely, Jason Merrill, Matt Newsome +- [Trip Report: C++ Standards Meeting in Urbana-Champaign, November 2014](http://www.theres-waldo.ca/2014/07/17/trip-report-c-standards-committee-meeting-in-rapperswil-june-2014/) by J. Daniel Garcia +- [Red Hat at the ISO C++ Standards Meeting (November 2014): Library](https://developers.redhat.com/blog/2014/08/21/iso-cxx-meeting-rapperswil-2014-core-library/) by Jonathan Wakely, Jason Merrill, Matt Newsome #### 解説 C++14 について議論する最後の会議で、この会議によって C++14 規格が完成しました。 @@ -263,9 +263,9 @@ C++14 への機能追加はなく、C++17 に対しては、トライグラフ - [JTC1/SC22/WG21 - Papers 2014 mailing2014-03 post-Issaquah](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/#mailing2014-03) #### 参加報告 -- [Trip report: Winter ISO C++ meeting](https://isocpp.org/blog/2014/02/trip-report) by Herb Sutter -- [Trip Report: C++ Standards Committee Meeting in Issaquah, February 2014](http://theres-waldo.ca/2014/02/22/trip-report-c-standards-committee-meeting-in-issaquah-february-2014/) by J. Daniel Garcia -- [Red Hat at the ISO C++ Standards Meeting (February 2014)](https://developers.redhat.com/blog/2014/05/28/red-hat-iso-c-standards-meeting-february-2014/) by Matt Newsome +- [Trip report: Winter ISO C++ meeting](https://isocpp.org/blog/2014/02/trip-report) by Herb Sutter +- [Trip Report: C++ Standards Committee Meeting in Issaquah, February 2014](http://theres-waldo.ca/2014/02/22/trip-report-c-standards-committee-meeting-in-issaquah-february-2014/) by J. Daniel Garcia +- [Red Hat at the ISO C++ Standards Meeting (February 2014)](https://developers.redhat.com/blog/2014/05/28/red-hat-iso-c-standards-meeting-february-2014/) by Matt Newsome #### 解説 C++14 の最終作業と C++17 に向けた一部の作業が行われました。 From 8db990da5fed4c2b7e5897246d9e2a9a42797ddf Mon Sep 17 00:00:00 2001 From: onihusube Date: Sun, 22 Sep 2019 20:10:29 +0900 Subject: [PATCH 048/457] =?UTF-8?q?meetings=20:=20C++14=E3=81=AB=E9=96=A2?= =?UTF-8?q?=E3=81=99=E3=82=8B=E4=BC=9A=E8=AD=B0=E3=81=AB=E3=81=A4=E3=81=84?= =?UTF-8?q?=E3=81=A6=E8=BF=BD=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 18a2eca..c8d2743 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -271,17 +271,60 @@ C++14 への機能追加はなく、C++17 に対しては、トライグラフ C++14 の最終作業と C++17 に向けた一部の作業が行われました。 どちらに対しても機能の追加はなく、C++14 に対しては各国委員会からのコメントや既存の Issue への対応が主です。 + ### 2013 Chicago +#### 場所 / 提案 / 会議の結果 - 2013-09-23 to 28 / シカゴ, イリノイ州, 米国 +- [JTC1/SC22/WG21 - Papers 2013 mailing2013-09-pre-Chicago](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/#mailing2013-09) +- [JTC1/SC22/WG21 - Papers 2013 mailing2013-10-post-Chicago](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/#mailing2013-10) + +#### 参加報告 +- [Trip report: Fall ISO C++ meeting](https://isocpp.org/blog/2013/10/trip-report-fall-iso-c-meeting) by Herb Sutter + +#### 解説 + +数値リテラルの区切り文字、`[[deprecated]]`属性、引数としてサイズをとるグローバル`delete`演算子のオーバーロードの許可等が承認されました。 +また、前回会議で承認されていた動的配列のサポートおよび`std::dynarray`と`std::optional`はC++14から取り除かれることになりました。 + ### 2013 Bristol +#### 場所 / 提案 / 会議の結果 - 2013-04-15 to 20 / ブリストル, イングランド, 英国 +- [JTC1/SC22/WG21 - Papers 2013 mailing2013-03-pre-Bristol](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/#mailing2013-03) +- [JTC1/SC22/WG21 - Papers 2013 mailing2013-05-post-Bristol](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/#mailing2013-05) + +#### 参加報告 +- [Trip Report: ISO C++ Spring 2013 Meeting](https://isocpp.org/blog/2013/04/trip-report-iso-c-spring-2013-meeting) by Herb Sutter +- [The view from C++ Standard meeting April 2013 Part 1](https://www.ibm.com/developerworks/community/blogs/5894415f-be62-4bc0-81c5-3956e82276f3/entry/the_view_from_c_standard_meeting_april_2013_part_1?lang=en) by Michael Wong +- [A look at C++14: Papers Part I](https://www.meetingcpp.com/blog/items/a-look-at-cpp14-papers-part-1.html) by Jens Weller +- [A look at C++14: Papers Part 2](https://www.meetingcpp.com/blog/items/a-look-at-c14-papers-part-2.html) by Jens Weller +- [A look at C++14 and beyond: Papers Part 3](http://www.meetingcpp.com/index.php/br/items/a-look-at-c14-and-beyond-papers-part-3.html) by Jens Weller +- [A look at C++14 and beyond: Papers Part 4](https://www.meetingcpp.com/blog/items/a-look-at-c14-and-beyond-papers-part-4.html) by Jens Weller + +#### 解説 +コア言語機能として、`constexpr`の制限緩和、ジェネリックラムダ、ラムダ式の初期化キャプチャ、変数テンプレート、関数の戻り値型推論、動的配列のサポート、ライブラリ機能として、`std::make_unique()`、標準ライブラリへのユーザー定義リテラル導入、`std::optional`、`std::dynarray`等が承認されました。 +C++14 のほとんどの機能がこの会議で追加されています。 ### 2012 Portland +#### 場所 / 提案 / 会議の結果 - 2012-10-15 to 19 / ポートランド, オレゴン州, 米国 +- [JTC1/SC22/WG21 - Papers 2012 mailing2012-09-pre-Portland](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/#mailing2012-09) +- [JTC1/SC22/WG21 - Papers 2012 mailing2012-11-post-Portland](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/#mailing2012-11) + +#### 解説 +Issue対応が主で大きな機能の追加はありませんでした。 +ライブラリ機能として、`std::complex`, `std::chrono`, `std::array`, `std::initilizer_list`, `std::tuple`, `std::pair`等の`constexpr`対応が承認されました。 ### 2012 Kona +#### 場所 / 提案 / 会議の結果 - 2012-02-06 to 10 / コナ, ハワイ州, 米国 +- [JTC1/SC22/WG21 - Papers 2012 mailing2012-01-pre-Portland](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/#mailing2012-01) +- [JTC1/SC22/WG21 - Papers 2012 mailing2012-02-post-Portland](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/#mailing2012-02) + +#### 解説 +C++14 について議論する最初の会議です。 +機能の追加は無く、C++11 に対するIssueへの対応が主です。 + ### 2011 Bloomington - 2011-08-15 to 19 / ブルーミントン, インディアナ州, 米国 From 38fa0cebdecd8878f658601b5ee516585c289cdf Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 22 Sep 2019 20:20:07 +0900 Subject: [PATCH 049/457] =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index c8d2743..a2dc018 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -283,8 +283,8 @@ C++14 の最終作業と C++17 に向けた一部の作業が行われました #### 解説 -数値リテラルの区切り文字、`[[deprecated]]`属性、引数としてサイズをとるグローバル`delete`演算子のオーバーロードの許可等が承認されました。 -また、前回会議で承認されていた動的配列のサポートおよび`std::dynarray`と`std::optional`はC++14から取り除かれることになりました。 +数値リテラルの区切り文字、`[[deprecated]]` 属性、引数としてサイズをとるグローバル `delete` 演算子のオーバーロードの許可等が承認されました。 +また、前回会議で承認されていた動的配列のサポートおよび `std::dynarray` と `std::optional` は C++14 から取り除かれることになりました。 ### 2013 Bristol @@ -302,7 +302,7 @@ C++14 の最終作業と C++17 に向けた一部の作業が行われました - [A look at C++14 and beyond: Papers Part 4](https://www.meetingcpp.com/blog/items/a-look-at-c14-and-beyond-papers-part-4.html) by Jens Weller #### 解説 -コア言語機能として、`constexpr`の制限緩和、ジェネリックラムダ、ラムダ式の初期化キャプチャ、変数テンプレート、関数の戻り値型推論、動的配列のサポート、ライブラリ機能として、`std::make_unique()`、標準ライブラリへのユーザー定義リテラル導入、`std::optional`、`std::dynarray`等が承認されました。 +コア言語機能として、`constexpr` の制限緩和、ジェネリックラムダ、ラムダ式の初期化キャプチャ、変数テンプレート、関数の戻り値型推論、動的配列のサポート、ライブラリ機能として、`std::make_unique()`, 標準ライブラリへのユーザー定義リテラル導入、`std::optional`, `std::dynarray` 等が承認されました。 C++14 のほとんどの機能がこの会議で追加されています。 ### 2012 Portland @@ -312,8 +312,8 @@ C++14 のほとんどの機能がこの会議で追加されています。 - [JTC1/SC22/WG21 - Papers 2012 mailing2012-11-post-Portland](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/#mailing2012-11) #### 解説 -Issue対応が主で大きな機能の追加はありませんでした。 -ライブラリ機能として、`std::complex`, `std::chrono`, `std::array`, `std::initilizer_list`, `std::tuple`, `std::pair`等の`constexpr`対応が承認されました。 +Issue 対応が主で大きな機能の追加はありませんでした。 +ライブラリ機能として、`std::complex`, `std::chrono`, `std::array`, `std::initilizer_list`, `std::tuple`, `std::pair` 等の `constexpr` 対応が承認されました。 ### 2012 Kona #### 場所 / 提案 / 会議の結果 @@ -323,7 +323,7 @@ Issue対応が主で大きな機能の追加はありませんでした。 #### 解説 C++14 について議論する最初の会議です。 -機能の追加は無く、C++11 に対するIssueへの対応が主です。 +機能の追加は無く、C++11 に対する Issue への対応が主です。 ### 2011 Bloomington From a28f56cd614a8a49b6d9868b6165655482382e0a Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 22 Sep 2019 20:20:57 +0900 Subject: [PATCH 050/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index c69d465..1051a03 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -32,6 +32,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/19) - [C++20 の新機能 記事加筆](https://github.com/cppmap/cppmap.docs/pull/20) - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/21) + - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/27) - [@tak0kada](https://twitter.com/tak0kada) さん - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/26) - [@tetzrom](https://twitter.com/tetzrom) さん From 1b98b45dd37f061ec0c0d4e0ae1eb2b7286f7c0e Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 22 Sep 2019 20:37:45 +0900 Subject: [PATCH 051/457] =?UTF-8?q?=E3=82=AA=E3=83=B3=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=B3=E3=83=B3=E3=83=91=E3=82=A4=E3=83=A9=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tools/onlinecompilers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index 3c30a11..1c8992f 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -8,8 +8,8 @@ C++ プログラムのコンパイル、実行、共有ができる Web サイ | | コンパイラ | 日本語入出力 | インタラクティブ | 複数ファイル | |---------------------------------------------------------------|-----------------------------------------------------------------------------------------------|:------------:|:------------:|:------------:| -| [Wandbox](https://wandbox.org/) |
  • GCC 4.4.7 - **10.0.0\***
  • Clang 3.1 - **9.0.0\***
  • | :fa-check: | | :fa-check: | -| [Compiler Explorer](https://godbolt.org/)
    (Execution モード) |
  • GCC 4.7.3 - **10.0.0\***
  • Clang 3.3 - **9.0.0\***
  • ICC 16.0.3 - **19.0.1**
  • | :fa-check: | | | +| [Wandbox](https://wandbox.org/) |
  • GCC 4.4.7 - **10.0.0\***
  • Clang 3.1 - **10.0.0\***
  • | :fa-check: | | :fa-check: | +| [Compiler Explorer](https://godbolt.org/)
    (Execution モード) |
  • GCC 4.7.3 - **10.0.0\***
  • Clang 3.3 - **10.0.0\***
  • ICC 16.0.3 - **19.0.1**
  • | :fa-check: | | | | [Ideone](https://ideone.com/) |
  • GCC 8.3.0
  • | :fa-check: | | | | [GDB Online](https://www.onlinegdb.com/) |
  • GCC 7.4.0
  • | :fa-check: | :fa-check: | :fa-check: | | [repl.it](https://repl.it/languages/cpp) |
  • Clang 7.0.0
  • | :fa-check: | :fa-check: | :fa-check: | From 2d938d0876e3d420c441059a0b8f330f7e3ddae4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 2 Oct 2019 22:47:12 +0900 Subject: [PATCH 052/457] add screenshot --- images/cppmap.png | Bin 0 -> 79895 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/cppmap.png diff --git a/images/cppmap.png b/images/cppmap.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b5af0e93ec7be6abda2cf6d5413dd3493cc951 GIT binary patch literal 79895 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 literal 0 HcmV?d00001 From 08d9aaf37059724afcb5683c9e09dff0318595a7 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 3 Oct 2019 12:21:45 +0900 Subject: [PATCH 053/457] =?UTF-8?q?caddicpp=20=E5=8B=95=E7=94=BB=20URL=20?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 276c619..99f8e9f 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -118,7 +118,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #5 [(2019-09-25)](https://caddi.connpass.com/event/147690/) | 標準変換、オーバーロード解決、テンプレートの実引数推定 | | +| #5 [(2019-09-25)](https://caddi.connpass.com/event/147690/) | 標準変換、オーバーロード解決、テンプレートの実引数推定 | [:fa-play:](https://youtu.be/bUyUDHPk4ik) | | #4 [(2019-09-11)](https://caddi.connpass.com/event/146786/) | C++ 標準規格の用語解説 | [:fa-play:](https://youtu.be/OYBLK4Lwudw) | | #3 [(2019-08-30)](https://caddi.connpass.com/event/145070/) | メタプログラミング | | | #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | From 8b39b0014178840fb8b19262dac08e214e5134fc Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 3 Oct 2019 12:29:32 +0900 Subject: [PATCH 054/457] Boost 1.71.0 --- docs/libraries/boost.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/libraries/boost.md b/docs/libraries/boost.md index c04d598..d769df0 100644 --- a/docs/libraries/boost.md +++ b/docs/libraries/boost.md @@ -4,6 +4,7 @@ description: Boost C++ Libraries のバージョン履歴 | バージョン / リリースノート | リリース日 | 新しく追加されたライブラリ | |------------------------------------------------------------------------------------------------------------------------------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [1.71.0](https://www.boost.org/users/history/version_1_71_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_71_0.html) | 2019-08-19 | [Variant2](https://www.boost.org/libs/variant2/) | | [1.70.0](https://www.boost.org/users/history/version_1_70_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_70_0.html) | 2019-04-12 | [Outcome](https://www.boost.org/libs/outcome/), [Histogram](https://www.boost.org/libs/histogram/) | | [1.69.0](https://www.boost.org/users/history/version_1_69_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_69_0.html) | 2018-12-12 | [Safe Numerics](https://www.boost.org/libs/safe_numerics/) | | [1.68.0](https://www.boost.org/users/history/version_1_68_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_68_0.html) | 2018-08-09 | [YAP](https://www.boost.org/libs/yap/) | From a0b54135cce467107a73a136bc569c05b48d8aed Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 3 Oct 2019 13:20:08 +0900 Subject: [PATCH 055/457] Boost 1.29.0-1.34.1 --- docs/libraries/boost.md | 92 +++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 41 deletions(-) diff --git a/docs/libraries/boost.md b/docs/libraries/boost.md index d769df0..68abde7 100644 --- a/docs/libraries/boost.md +++ b/docs/libraries/boost.md @@ -2,48 +2,58 @@ description: Boost C++ Libraries のバージョン履歴 # Boost -| バージョン / リリースノート | リリース日 | 新しく追加されたライブラリ | -|------------------------------------------------------------------------------------------------------------------------------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [1.71.0](https://www.boost.org/users/history/version_1_71_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_71_0.html) | 2019-08-19 | [Variant2](https://www.boost.org/libs/variant2/) | -| [1.70.0](https://www.boost.org/users/history/version_1_70_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_70_0.html) | 2019-04-12 | [Outcome](https://www.boost.org/libs/outcome/), [Histogram](https://www.boost.org/libs/histogram/) | -| [1.69.0](https://www.boost.org/users/history/version_1_69_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_69_0.html) | 2018-12-12 | [Safe Numerics](https://www.boost.org/libs/safe_numerics/) | -| [1.68.0](https://www.boost.org/users/history/version_1_68_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_68_0.html) | 2018-08-09 | [YAP](https://www.boost.org/libs/yap/) | -| [1.67.0](https://www.boost.org/users/history/version_1_67_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_67_0.html) | 2018-04-14 | [Contract](https://www.boost.org/libs/contract/), [HOF](https://www.boost.org/libs/hof/) | -| [1.66.0](https://www.boost.org/users/history/version_1_66_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_66_0.html) | 2017-12-18 | [Beast](https://www.boost.org/libs/beast/), [CallableTraits](https://www.boost.org/libs/callable_traits/), [Mp11](https://www.boost.org/libs/mp11/) | -| [1.65.1](https://www.boost.org/users/history/version_1_65_1.html) / [日本語訳](https://boostjp.github.io/document/version/1_65_1.html) | 2017-09-07 | | -| [1.65.0](https://www.boost.org/users/history/version_1_65_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_65_0.html) | 2017-08-21 | [PolyCollection](https://www.boost.org/libs/poly_collection/), [Stacktrace](https://www.boost.org/libs/stacktrace/) | -| [1.64.0](https://www.boost.org/users/history/version_1_64_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_64_0.html) | 2017-04-19 | [Process](https://www.boost.org/libs/process/) | -| [1.63.0](https://www.boost.org/users/history/version_1_63_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_63_0.html) | 2016-12-26 | | -| [1.62.0](https://www.boost.org/users/history/version_1_62_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_62_0.html) | 2016-09-28 | [Fiber](https://www.boost.org/libs/fiber/), [QVM](https://www.boost.org/libs/qvm/doc/index.html) | -| [1.61.0](https://www.boost.org/users/history/version_1_61_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_61_0.html) | 2016-05-13 | [Compute](https://www.boost.org/libs/compute/), [DLL](https://www.boost.org/libs/dll/), [Hana](https://www.boost.org/libs/hana/), [Metaparse](https://www.boost.org/libs/metaparse/) | -| [1.60.0](https://www.boost.org/users/history/version_1_60_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_60_0.html) | 2015-12-17 | [VMD](https://www.boost.org/libs/vmd/) | -| [1.59.0](https://www.boost.org/users/history/version_1_59_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_59_0.html) | 2015-08-13 | [Convert](https://www.boost.org/libs/convert/), [Coroutine2](https://www.boost.org/libs/coroutine2/) | -| [1.58.0](https://www.boost.org/users/history/version_1_58_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_58_0.html) | 2015-04-17 | [Endian](https://www.boost.org/libs/endian), [Sort](https://www.boost.org/libs/sort/) | -| [1.57.0](https://www.boost.org/users/history/version_1_57_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_57_0.html) | 2014-11-03 | | -| [1.56.0](https://www.boost.org/users/history/version_1_56_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_56_0.html) | 2014-08-07 | [Align](https://www.boost.org/libs/align/), [Type_Index](https://www.boost.org/libs/type_index/) | -| [1.55.0](https://www.boost.org/users/history/version_1_55_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_55_0.html) | 2013-11-11 | [Predef](https://www.boost.org/libs/predef/) | -| [1.54.0](https://www.boost.org/users/history/version_1_54_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_54_0.html) | 2013-07-01 | [Log](https://www.boost.org/libs/log/), [TTI](https://www.boost.org/libs/tti/), [Type Erasure](https://www.boost.org/libs/type_erasure/) | -| [1.53.0](https://www.boost.org/users/history/version_1_53_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_53_0.html) | 2013-02-04 | [Atomic](https://www.boost.org/libs/atomic/), [Coroutine](https://www.boost.org/libs/coroutine/), [Lockfree](https://www.boost.org/libs/lockfree/), [Multiprecision](https://www.boost.org/libs/multiprecision/), [Odeint](https://www.boost.org/libs/numeric/odeint/) | -| [1.52.0](https://www.boost.org/users/history/version_1_52_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_52_0.html) | 2012-11-05 | | -| [1.51.0](https://www.boost.org/users/history/version_1_51_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_51_0.html) | 2012-08-20 | [Context](https://www.boost.org/libs/context/) | -| [1.50.0](https://www.boost.org/users/history/version_1_50_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_50_0.html) | 2012-06-28 | [Algorithm](https://www.boost.org/libs/algorithm/), [Functional/OverloadedFunction](https://www.boost.org/libs/functional/overloaded_function/),
    [LocalFunction](https://www.boost.org/libs/local_function/), [Utility/IdentityType](https://www.boost.org/libs/utility/identity_type/) | -| [1.49.0](https://www.boost.org/users/history/version_1_49_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_49_0.html) | 2012-02-24 | [Heap](https://www.boost.org/libs/heap/index.html) | -| [1.48.0](https://www.boost.org/users/history/version_1_48_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_48_0.html) | 2011-11-15 | [Container](https://www.boost.org/libs/container/index.html), [Locale](https://www.boost.org/libs/locale/index.html), [Move](https://www.boost.org/doc/html/move.html) | -| [1.47.0](https://www.boost.org/users/history/version_1_47_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_47_0.html) | 2011-07-11 | [Chrono](https://www.boost.org/libs/chrono/index.html), [Geometry](https://www.boost.org/libs/geometry/index.html), [Phoenix](https://www.boost.org/libs/phoenix/index.html), [Ratio](https://www.boost.org/libs/ratio/index.html) | -| [1.46.1](https://www.boost.org/users/history/version_1_46_1.html) / [日本語訳](https://boostjp.github.io/document/version/1_46_1.html) | 2011-03-12 | | -| [1.46.0](https://www.boost.org/users/history/version_1_46_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_46_0.html) | 2011-02-21 | [Icl](https://www.boost.org/libs/icl/index.html) | -| [1.45.0](https://www.boost.org/users/history/version_1_45_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_45_0.html) | 2010-11-19 | | -| [1.44.0](https://www.boost.org/users/history/version_1_44_0.html) | 2010-08-13 | [Meta State Machine](https://www.boost.org/libs/msm/index.html), [Polygon](https://www.boost.org/libs/polygon/index.html) | -| [1.43.0](https://www.boost.org/users/history/version_1_43_0.html) | 2010-05-06 | [Functional/factory](https://www.boost.org/libs/functional/factory/index.html), [Functional/forward](https://www.boost.org/libs/functional/forward/index.html) | -| [1.42.0](https://www.boost.org/users/history/version_1_42_0.html) | 2010-02-02 | [Uuid](https://www.boost.org/libs/uuid/index.html) | -| [1.41.0](https://www.boost.org/users/history/version_1_41_0.html) | 2009-11-17 | [Property Tree](https://www.boost.org/libs/property_tree/index.html) | -| [1.40.0](https://www.boost.org/users/history/version_1_40_0.html) | 2009-08-27 | | -| [1.39.0](https://www.boost.org/users/history/version_1_39_0.html) | 2009-05-02 | [Signals2](https://www.boost.org/libs/signals2/index.html) | -| [1.38.0](https://www.boost.org/users/history/version_1_38_0.html) | 2009-02-08 | [Flyweight](https://www.boost.org/libs/flyweight/index.html), [ScopeExit](https://www.boost.org/libs/scope_exit/doc/html/index.html), [Swap](https://www.boost.org/libs/utility/swap.html) | -| [1.37.0](https://www.boost.org/users/history/version_1_37_0.html) | 2008-11-03 | [Proto](https://www.boost.org/libs/proto/index.html) | -| [1.36.0](https://www.boost.org/users/history/version_1_36_0.html) | 2008-08-14 | [Accumulators](https://www.boost.org/libs/accumulators/index.html), [Exception](https://www.boost.org/libs/exception/doc/boost-exception.html), [Units](https://www.boost.org/libs/units/index.html), [Unordered](https://www.boost.org/libs/unordered/index.html) | +| バージョン / リリースノート | リリース日 | 新しく追加されたライブラリ | +|------------------------------------------------------------------------------------------------------------------------------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [1.71.0](https://www.boost.org/users/history/version_1_71_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_71_0.html) | 2019-08-19 | [Variant2](https://www.boost.org/libs/variant2/) | +| [1.70.0](https://www.boost.org/users/history/version_1_70_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_70_0.html) | 2019-04-12 | [Outcome](https://www.boost.org/libs/outcome/), [Histogram](https://www.boost.org/libs/histogram/) | +| [1.69.0](https://www.boost.org/users/history/version_1_69_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_69_0.html) | 2018-12-12 | [Safe Numerics](https://www.boost.org/libs/safe_numerics/) | +| [1.68.0](https://www.boost.org/users/history/version_1_68_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_68_0.html) | 2018-08-09 | [YAP](https://www.boost.org/libs/yap/) | +| [1.67.0](https://www.boost.org/users/history/version_1_67_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_67_0.html) | 2018-04-14 | [Contract](https://www.boost.org/libs/contract/), [HOF](https://www.boost.org/libs/hof/) | +| [1.66.0](https://www.boost.org/users/history/version_1_66_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_66_0.html) | 2017-12-18 | [Beast](https://www.boost.org/libs/beast/), [CallableTraits](https://www.boost.org/libs/callable_traits/), [Mp11](https://www.boost.org/libs/mp11/) | +| [1.65.1](https://www.boost.org/users/history/version_1_65_1.html) / [日本語訳](https://boostjp.github.io/document/version/1_65_1.html) | 2017-09-07 | | +| [1.65.0](https://www.boost.org/users/history/version_1_65_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_65_0.html) | 2017-08-21 | [PolyCollection](https://www.boost.org/libs/poly_collection/), [Stacktrace](https://www.boost.org/libs/stacktrace/) | +| [1.64.0](https://www.boost.org/users/history/version_1_64_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_64_0.html) | 2017-04-19 | [Process](https://www.boost.org/libs/process/) | +| [1.63.0](https://www.boost.org/users/history/version_1_63_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_63_0.html) | 2016-12-26 | | +| [1.62.0](https://www.boost.org/users/history/version_1_62_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_62_0.html) | 2016-09-28 | [Fiber](https://www.boost.org/libs/fiber/), [QVM](https://www.boost.org/libs/qvm/doc/index.html) | +| [1.61.0](https://www.boost.org/users/history/version_1_61_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_61_0.html) | 2016-05-13 | [Compute](https://www.boost.org/libs/compute/), [DLL](https://www.boost.org/libs/dll/), [Hana](https://www.boost.org/libs/hana/), [Metaparse](https://www.boost.org/libs/metaparse/) | +| [1.60.0](https://www.boost.org/users/history/version_1_60_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_60_0.html) | 2015-12-17 | [VMD](https://www.boost.org/libs/vmd/) | +| [1.59.0](https://www.boost.org/users/history/version_1_59_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_59_0.html) | 2015-08-13 | [Convert](https://www.boost.org/libs/convert/), [Coroutine2](https://www.boost.org/libs/coroutine2/) | +| [1.58.0](https://www.boost.org/users/history/version_1_58_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_58_0.html) | 2015-04-17 | [Endian](https://www.boost.org/libs/endian), [Sort](https://www.boost.org/libs/sort/) | +| [1.57.0](https://www.boost.org/users/history/version_1_57_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_57_0.html) | 2014-11-03 | | +| [1.56.0](https://www.boost.org/users/history/version_1_56_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_56_0.html) | 2014-08-07 | [Align](https://www.boost.org/libs/align/), [Type_Index](https://www.boost.org/libs/type_index/) | +| [1.55.0](https://www.boost.org/users/history/version_1_55_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_55_0.html) | 2013-11-11 | [Predef](https://www.boost.org/libs/predef/) | +| [1.54.0](https://www.boost.org/users/history/version_1_54_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_54_0.html) | 2013-07-01 | [Log](https://www.boost.org/libs/log/), [TTI](https://www.boost.org/libs/tti/), [Type Erasure](https://www.boost.org/libs/type_erasure/) | +| [1.53.0](https://www.boost.org/users/history/version_1_53_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_53_0.html) | 2013-02-04 | [Atomic](https://www.boost.org/libs/atomic/), [Coroutine](https://www.boost.org/libs/coroutine/), [Lockfree](https://www.boost.org/libs/lockfree/), [Multiprecision](https://www.boost.org/libs/multiprecision/), [Odeint](https://www.boost.org/libs/numeric/odeint/) | +| [1.52.0](https://www.boost.org/users/history/version_1_52_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_52_0.html) | 2012-11-05 | | +| [1.51.0](https://www.boost.org/users/history/version_1_51_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_51_0.html) | 2012-08-20 | [Context](https://www.boost.org/libs/context/) | +| [1.50.0](https://www.boost.org/users/history/version_1_50_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_50_0.html) | 2012-06-28 | [Algorithm](https://www.boost.org/libs/algorithm/), [Functional/OverloadedFunction](https://www.boost.org/libs/functional/overloaded_function/),
    [LocalFunction](https://www.boost.org/libs/local_function/), [Utility/IdentityType](https://www.boost.org/libs/utility/identity_type/) | +| [1.49.0](https://www.boost.org/users/history/version_1_49_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_49_0.html) | 2012-02-24 | [Heap](https://www.boost.org/libs/heap/index.html) | +| [1.48.0](https://www.boost.org/users/history/version_1_48_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_48_0.html) | 2011-11-15 | [Container](https://www.boost.org/libs/container/index.html), [Locale](https://www.boost.org/libs/locale/index.html), [Move](https://www.boost.org/doc/html/move.html) | +| [1.47.0](https://www.boost.org/users/history/version_1_47_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_47_0.html) | 2011-07-11 | [Chrono](https://www.boost.org/libs/chrono/index.html), [Geometry](https://www.boost.org/libs/geometry/index.html), [Phoenix](https://www.boost.org/libs/phoenix/index.html), [Ratio](https://www.boost.org/libs/ratio/index.html) | +| [1.46.1](https://www.boost.org/users/history/version_1_46_1.html) / [日本語訳](https://boostjp.github.io/document/version/1_46_1.html) | 2011-03-12 | | +| [1.46.0](https://www.boost.org/users/history/version_1_46_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_46_0.html) | 2011-02-21 | [Icl](https://www.boost.org/libs/icl/index.html) | +| [1.45.0](https://www.boost.org/users/history/version_1_45_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_45_0.html) | 2010-11-19 | | +| [1.44.0](https://www.boost.org/users/history/version_1_44_0.html) | 2010-08-13 | [Meta State Machine](https://www.boost.org/libs/msm/index.html), [Polygon](https://www.boost.org/libs/polygon/index.html) | +| [1.43.0](https://www.boost.org/users/history/version_1_43_0.html) | 2010-05-06 | [Functional/factory](https://www.boost.org/libs/functional/factory/index.html), [Functional/forward](https://www.boost.org/libs/functional/forward/index.html) | +| [1.42.0](https://www.boost.org/users/history/version_1_42_0.html) | 2010-02-02 | [Uuid](https://www.boost.org/libs/uuid/index.html) | +| [1.41.0](https://www.boost.org/users/history/version_1_41_0.html) | 2009-11-17 | [Property Tree](https://www.boost.org/libs/property_tree/index.html) | +| [1.40.0](https://www.boost.org/users/history/version_1_40_0.html) | 2009-08-27 | | +| [1.39.0](https://www.boost.org/users/history/version_1_39_0.html) | 2009-05-02 | [Signals2](https://www.boost.org/libs/signals2/index.html) | +| [1.38.0](https://www.boost.org/users/history/version_1_38_0.html) | 2009-02-08 | [Flyweight](https://www.boost.org/libs/flyweight/index.html), [ScopeExit](https://www.boost.org/libs/scope_exit/doc/html/index.html), [Swap](https://www.boost.org/libs/utility/swap.html) | +| [1.37.0](https://www.boost.org/users/history/version_1_37_0.html) | 2008-11-03 | [Proto](https://www.boost.org/libs/proto/index.html) | +| [1.36.0](https://www.boost.org/users/history/version_1_36_0.html) | 2008-08-14 | [Accumulators](https://www.boost.org/libs/accumulators/index.html), [Exception](https://www.boost.org/libs/exception/doc/boost-exception.html), [Units](https://www.boost.org/libs/units/index.html), [Unordered](https://www.boost.org/libs/unordered/index.html) | | [1.35.0](https://www.boost.org/users/history/version_1_35_0.html) | 2008-03-29 | [Asio](https://www.boost.org/libs/asio/index.html), [Bimap](https://www.boost.org/libs/bimap/index.html), [Circular Buffer](https://www.boost.org/libs/circular_buffer/index.html), [Function Types](https://www.boost.org/libs/function_types/index.html), [Fusion](https://www.boost.org/libs/fusion/index.html),
    [GIL](https://www.boost.org/libs/gil/doc/index.html), [Interprocess](https://www.boost.org/libs/interprocess/index.html), [Intrusive](https://www.boost.org/libs/intrusive/index.html), [Math/Special Functions](https://www.boost.org/libs/math/doc/sf_and_dist/html/index.html),
    [Math/Statistical Distributions](https://www.boost.org/libs/math/doc/sf_and_dist/html/index.html), [MPI](https://www.boost.org/doc/html/mpi.html), [System](https://www.boost.org/libs/system/index.html) | -| … | … | … | +| [1.34.1](https://www.boost.org/users/history/version_1_34_1.html) | 2007-07-24 | | +| [1.34.0](https://www.boost.org/users/history/version_1_34_0.html) | 2007-05-12 | [Foreach](https://www.boost.org/libs/foreach/index.html), [Statechart](https://www.boost.org/libs/statechart/index.html), [TR1 (removed)](https://www.boost.org/doc/libs/1_64_0/doc/html/boost_tr1.html), [Typeof](https://www.boost.org/libs/typeof/index.html), [Xpressive](https://www.boost.org/libs/xpressive/index.html) | +| [1.33.1](https://www.boost.org/users/history/version_1_33_1.html) | 2006-12-05 | | +| [1.33.0](https://www.boost.org/users/history/version_1_33_0.html) | 2005-08-11 | [Iostreams](https://www.boost.org/libs/iostreams/index.html), [Functional/Hash](https://www.boost.org/doc/html/hash.html), [Parameter](https://www.boost.org/libs/parameter/index.html), [Pointer Container](https://www.boost.org/libs/ptr_container/index.html), [Wave](https://www.boost.org/libs/wave/index.html) | +| [1.32.0](https://www.boost.org/users/history/version_1_32_0.html) | 2004-11-19 | [Assignment](https://www.boost.org/libs/assign/index.html), [Minmax](https://www.boost.org/libs/algorithm/minmax/index.html), [Multi-index Containers](https://www.boost.org/libs/multi_index/index.html),
    [Numeric Conversion](https://www.boost.org/libs/numeric/conversion/index.html), [Program Options](https://www.boost.org/libs/program_options/index.html), [Range](https://www.boost.org/libs/range/index.html), [Serialization](https://www.boost.org/libs/serialization/index.html),
    [String Algorithms](https://www.boost.org/doc/html/string_algo.html), [Tribool](https://www.boost.org/doc/html/boost/logic/tribool.html) | +| [1.31.0](https://www.boost.org/users/history/version_1_31_0.html) | 2004-01-26 | [enable_if](https://www.boost.org/libs/core/doc/html/core/enable_if.html), [Variant](https://www.boost.org/libs/variant/index.html) | +| [1.30.2](https://www.boost.org/users/history/version_1_30_2.html) | 2003-08-19 | | +| [1.30.1](https://www.boost.org/users/history/version_1_30_1.html) | 2003-08-04 | | +| [1.30.0](https://www.boost.org/users/history/version_1_30_0.html) | 2003-03-19 | [Filesystem](https://www.boost.org/libs/filesystem/index.html), [Optional](https://www.boost.org/libs/optional/doc/html/index.html), [Interval](https://www.boost.org/libs/numeric/interval/index.html), [MPL](https://www.boost.org/libs/mpl/index.html), [Spirit](https://www.boost.org/libs/spirit/index.html) | +| [1.29.0](https://www.boost.org/users/history/version_1_29_0.html) | 2002-10-10 | [Date-Time](https://www.boost.org/libs/date_time/doc/index.html), [Dynamic Bitset](https://www.boost.org/libs/dynamic_bitset/dynamic_bitset.html), [Format](https://www.boost.org/libs/format/index.html) | +| … | … | … | ## 参考文献 - Boost Version History From 3ece600140034ceeef785ede84c35997ac967f7d Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 3 Oct 2019 17:26:45 +0900 Subject: [PATCH 056/457] =?UTF-8?q?Quick=20C++=20Benchmark=20=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=80=81=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tools/images/quick-bench.png | Bin 0 -> 145708 bytes docs/tools/onlinecompilers.md | 76 +++++++++++++++++------------- 2 files changed, 42 insertions(+), 34 deletions(-) create mode 100644 docs/tools/images/quick-bench.png diff --git a/docs/tools/images/quick-bench.png b/docs/tools/images/quick-bench.png new file mode 100644 index 0000000000000000000000000000000000000000..2807aa47c9462c156a8a5869df8e230d58777ea4 GIT binary patch literal 145708 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 ZR2tnjlA#Rrl*B3U)7LT9CTKnk{V(T>i75a8 literal 0 HcmV?d00001 diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index 1c8992f..6f2d102 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -2,7 +2,7 @@ description: C++ プログラムのコンパイル・実行ができる Web サ # オンラインコンパイラ -## 開発環境 +## 主要なオンラインコンパイラ C++ プログラムのコンパイル、実行、共有ができる Web サイトです。 @@ -18,11 +18,46 @@ C++ プログラムのコンパイル、実行、共有ができる Web サイ * 印は trunk +## その他のツール -## C++ Insights: ソース → ソース変換 +### Compiler Explorer +[Compiler Explorer](https://godbolt.org/) は、C, C++, Rust, Swift などのソースコードをコンパイルしてアセンブリを表示するオンラインコンパイラです。複数タブを使って、GCC, Clang, MSVC, ICC などのコンパイラや、コンパイルオプションを変えたときの結果を比較できます。 + +入力例 +```c++ +int square(int num) +{ + return num * num; +} +``` + +出力 +```asm +square(int): + push rbp + mov rbp, rsp + mov DWORD PTR [rbp-4], edi + mov eax, DWORD PTR [rbp-4] + imul eax, DWORD PTR [rbp-4] + pop rbp + ret +``` + +Compiler Explorer には、Web 上のファイルを `#include "URL"` でインクルードできる独自拡張機能があります。この機能を使うと、GitHub などに公開されているシングルヘッダライブラリをプログラムの中で簡単に使えます(例: https://godbolt.org/z/OV-vGQ) + + +### Quick C++ Benchmark +[Quick C++ Benchmark](http://quick-bench.com/) は、[google/benchmark](https://github.com/google/benchmark) による実行時間の計測と、その結果のビジュアライズができるオンラインコンパイラです。棒グラフによる比較、アセンブリの表示、グラフ画像のダウンロード、URL による結果のシェアなどの機能があります。 + +例: http://quick-bench.com/O1QdfCc73docKGKjaYBxWG6a9AU + +![](images/quick-bench.png) + + +### C++ Insights [C++ Insights](https://cppinsights.io/) は、ラムダ式、range-based for, 構造化束縛などで何が起こっているのかを、プログラムを単純なソースコードに分解することで可視化するオンラインのツールです。 -#### 入力例 +入力例 ```c++ #include @@ -36,7 +71,7 @@ int main() } } ``` -#### 出力 +出力 ```c++ #include @@ -57,38 +92,11 @@ int main() } ``` -## Compiler Explorer: ソース → アセンブリ変換 - -### 概要 -[Compiler Explorer](https://godbolt.org/) は、C, C++, Rust, Swift などのソースコードをコンパイルしてアセンブリを表示するオンラインコンパイラです。複数タブを使って、GCC, Clang, MSVC, ICC などのコンパイラや、コンパイルオプションを変えたときの結果を比較できます。 - -#### 入力例 -```c++ -int square(int num) { - return num * num; -} -``` - -#### 出力 -```asm -square(int): - push rbp - mov rbp, rsp - mov DWORD PTR [rbp-4], edi - mov eax, DWORD PTR [rbp-4] - imul eax, DWORD PTR [rbp-4] - pop rbp - ret -``` - -### URL からインクルード -Compiler Explorer には、Web 上のファイルを `#include "URL"` でインクルードできる独自拡張機能があります。この機能を使うと、GitHub などに公開されているシングルヘッダライブラリをプログラムの中で簡単に使えます(例: https://godbolt.org/z/OV-vGQ) - -## Stensal: セグメンテーション違反の原因を表示 +### Stensal [Stensal](https://segfault.stensal.com/) は、C, C++ プログラムを実行して、セグメンテーション違反などメモリに関する問題が発生したときに、その箇所と原因をわかりやすく表示するオンラインコンパイラです。バッファオーバーラン、Null ポインタの参照外し、未初期化変数の利用などの問題を明らかにします。実装には Wandbox が使われています。 -#### 入力例 +入力例 ```C++ #include @@ -100,7 +108,7 @@ int main() } ``` -#### 出力例 +出力例 ``` =========== Start of #0 stensal runtime message =========== From 1926da5a7d02b45d4ef746b01a9a55dd6fb61f8e Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 3 Oct 2019 22:43:20 +0900 Subject: [PATCH 057/457] P1161R3 --- docs/standardization/cpp20.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 48bfff4..b4e6593 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -395,6 +395,25 @@ int main() ``` +### 添字式にかかる `,` 演算子の使用を deprecated に [(P1161R3)](https://wg21.link/P1161R3) +これまで `array[x, y]` というコードでは、`,` 演算子の作用で `y` が添字演算の引数として渡されました。しかし、この挙動は紛らわしく、将来の C++ 標準ライブラリに多次元配列クラスが実装されたとき、添字演算子を複数の引数に対応させるような規格を追加するうえでの障壁にもなります。そのため、C++20 から、`array[(x, y)]` のように括弧を使用する場合をのぞき、添字式にかかる `,` 演算子の使用が deprecated になります。古いコードで deprecated な書き方をしていた場合、前述のように `()` を付けることで、コードの挙動に影響を与えずに移植が可能です。 + +```C++ +#include + +int main() +{ + std::vector v(10); + + int index = 0; + + v[++index, 0] = -1; // C++17 まで OK, C++20 から deprecated + + v[(++index, 0)] = -1; // OK +} +``` + + ## 標準ライブラリ ### 文字列の先頭や末尾が、ある文字列と一致するか判定 [(P0457R2)](https://wg21.link/P0457R2) From 111045b6bd6de1eb4c181f185aaa3eb95476431f Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 3 Oct 2019 22:49:31 +0900 Subject: [PATCH 058/457] =?UTF-8?q?=E6=96=87=E9=9D=A2=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cpp20.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index b4e6593..022eca4 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -395,8 +395,8 @@ int main() ``` -### 添字式にかかる `,` 演算子の使用を deprecated に [(P1161R3)](https://wg21.link/P1161R3) -これまで `array[x, y]` というコードでは、`,` 演算子の作用で `y` が添字演算の引数として渡されました。しかし、この挙動は紛らわしく、将来の C++ 標準ライブラリに多次元配列クラスが実装されたとき、添字演算子を複数の引数に対応させるような規格を追加するうえでの障壁にもなります。そのため、C++20 から、`array[(x, y)]` のように括弧を使用する場合をのぞき、添字式にかかる `,` 演算子の使用が deprecated になります。古いコードで deprecated な書き方をしていた場合、前述のように `()` を付けることで、コードの挙動に影響を与えずに移植が可能です。 +### 添字式にかかるコンマ演算子の使用を deprecated に [(P1161R3)](https://wg21.link/P1161R3) +これまで `array[x, y]` というコードでは、コンマ演算子の作用で `y` が添字演算の引数として渡されました。しかし、この挙動は紛らわしく、将来の C++ 標準ライブラリに多次元配列クラスが実装されたとき、添字演算子を複数の引数に対応させるような規格を追加するうえでの障壁にもなります。そのため、C++20 から、`array[(x, y)]` のように括弧を使用する場合をのぞき、添字式にかかるコンマ演算子の使用が deprecated になります。古いコードで deprecated な書き方をしていた場合、前述のように `()` を付けることで、コードの挙動に影響を与えずに移植が可能です。 ```C++ #include From a08a0882b44afec9d024a6f277788c05bbe38ae9 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 4 Oct 2019 10:35:52 +0900 Subject: [PATCH 059/457] =?UTF-8?q?C++=20Core=20Guidelines=20=E6=97=A5?= =?UTF-8?q?=E6=9C=AC=E8=AA=9E=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/online-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/online-resources.md b/docs/learn/online-resources.md index 472fbdf..c033fc8 100644 --- a/docs/learn/online-resources.md +++ b/docs/learn/online-resources.md @@ -13,7 +13,7 @@ description: オンラインでアクセスできる C++ 資料の紹介 - [C++ Language Reference](https://docs.microsoft.com/en-us/cpp/cpp/cpp-language-reference) ## コーディングガイドライン -- [C++ Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) +- [C++ Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) | [見出し日本語訳](https://qiita.com/tetsurom/items/322c7b58cddaada861ff) - [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) | [日本語訳](https://ttsuki.github.io/styleguide/cppguide.ja.html) - [LLVM Coding Standards](https://llvm.org/docs/CodingStandards.html) From 299f849c5e5797a24a2f1dab96cc3e80a9b318e4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 5 Oct 2019 00:47:22 +0900 Subject: [PATCH 060/457] P1099R5 --- docs/standardization/cpp20.md | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 022eca4..00c68ca 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -414,6 +414,90 @@ int main() ``` +### スコープ付き列挙型に対する using 宣言ができるように [(P1099R5)](http://wg21.link/p1099r5) +これまでは、enum class のスコープ解決を省略する方法が無く、次のような `switch` で、列挙型の名前が何度も登場するようなコードを書く必要があり、読みにくく、長い列挙型の名前が避けられる原因になっていました。 +```C++ +#include +#include + +enum class Terrain +{ + Open, Mountain, River, Ocean +}; + +constexpr std::string_view ToString(Terrain terrain) +{ + using namespace std::string_view_literals; + + switch (terrain) + { + case Terrain::Open: return "Open"sv; + case Terrain::Mountain: return "Mountain"sv; + case Terrain::River: return "River"sv; + case Terrain::Ocean: return "Ocean"sv; + default: return ""sv; + } +} + +int main() +{ + std::cout << ToString(Terrain::Mountain); +} +``` +C++20 では `using` 宣言を拡張し、`using Terrain::Open;` で `Open` をエイリアスとして使えるようになります。また `using enum` 宣言という新しい仕組みにより、`using enum Terrain;` で `Terrain` がローカルスコープに導入され、スコープ解決演算子を使わずにその列挙子を使えるようになります。 +```C++ +#include +#include + +enum class Terrain +{ + Open, Mountain, River, Ocean +}; + +constexpr std::string_view ToString(Terrain terrain) +{ + using namespace std::string_view_literals; + + switch (terrain) + { + using enum Terrain; // using enum 宣言で、列挙型の名前 Terrain をローカルスコープに導入 + case Open: return "Open"sv; + case Mountain: return "Mountain"sv; + case River: return "River"sv; + case Ocean: return "Ocean"sv; + default: return ""sv; + } +} + +int main() +{ + using Terrain::Mountain; // using 宣言で、列挙子 Mountain をローカルスコープに導入 + std::cout << ToString(Mountain); +} +``` +なお、次のように複数の `using` 宣言によって名前の衝突が起こる場合はコンパイルエラーになります。 +```C++ +#include +#include + +enum class Terrain +{ + Open, Mountain, River, Ocean +}; + +enum class State +{ + Open, Closed +}; + +int main() +{ + using enum Terrain; // OK + using enum State; // コンパイルエラー: Terrain::Open と State::Open の名前が衝突 +} +``` + + ## 標準ライブラリ ### 文字列の先頭や末尾が、ある文字列と一致するか判定 [(P0457R2)](https://wg21.link/P0457R2) From eb4c0a5028d49fd6de8508e284632b773278d8e0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 5 Oct 2019 12:02:03 +0900 Subject: [PATCH 061/457] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cpp20.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 00c68ca..f71bc0c 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -446,9 +446,6 @@ int main() ``` C++20 では `using` 宣言を拡張し、`using Terrain::Open;` で `Open` をエイリアスとして使えるようになります。また `using enum` 宣言という新しい仕組みにより、`using enum Terrain;` で `Terrain` がローカルスコープに導入され、スコープ解決演算子を使わずにその列挙子を使えるようになります。 ```C++ -#include -#include - enum class Terrain { Open, Mountain, River, Ocean From 80cb189316df6aba8cc8259361e509b461fb57f9 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 5 Oct 2019 12:04:12 +0900 Subject: [PATCH 062/457] =?UTF-8?q?=E6=A8=99=E6=BA=96=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=83=96=E3=83=A9=E3=83=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #28 --- docs/standardization/header.md | 114 +++++++++++++++++++++++++++++++++ mkdocs.yml | 3 +- 2 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 docs/standardization/header.md diff --git a/docs/standardization/header.md b/docs/standardization/header.md new file mode 100644 index 0000000..af41d79 --- /dev/null +++ b/docs/standardization/header.md @@ -0,0 +1,114 @@ + +## C++ 標準ライブラリ + +|ヘッダ|リファレンス|実装|バージョン| +|---|---|---|---| +|[<algorithm>](http://eel.is/c++draft/algorithm.syn)|[en](https://en.cppreference.com/w/cpp/header/algorithm) / [jp](https://ja.cppreference.com/w/cpp/header/algorithm) / [cpprefjp](https://cpprefjp.github.io/reference/algorithm.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/algorithm) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/algorithm) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/algorithm)|| +|[<any>](http://eel.is/c++draft/any.synop)|[en](https://en.cppreference.com/w/cpp/header/any) / [jp](https://ja.cppreference.com/w/cpp/header/any) / [cpprefjp](https://cpprefjp.github.io/reference/any.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/any) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/any) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/any)|since C++17| +|[<array>](http://eel.is/c++draft/array.syn)|[en](https://en.cppreference.com/w/cpp/header/array) / [jp](https://ja.cppreference.com/w/cpp/header/array) / [cpprefjp](https://cpprefjp.github.io/reference/array.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/array) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/array) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/array)|since C++11| +|[<atomic>](http://eel.is/c++draft/atomics.syn)|[en](https://en.cppreference.com/w/cpp/header/atomic) / [jp](https://ja.cppreference.com/w/cpp/header/atomic) / [cpprefjp](https://cpprefjp.github.io/reference/atomic.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/atomic) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/atomic) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/atomic)|since C++11| +|[<barrier>](http://eel.is/c++draft/barrier.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<bit>](http://eel.is/c++draft/bit.syn)|[en](https://en.cppreference.com/w/cpp/header/bit) / [jp](https://ja.cppreference.com/w/cpp/header/bit) / [cpprefjp](https://cpprefjp.github.io/reference/bit.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bit) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/bit) / MSVC|since C++20| +|[<bitset>](http://eel.is/c++draft/bitset.syn)|[en](https://en.cppreference.com/w/cpp/header/bitset) / [jp](https://ja.cppreference.com/w/cpp/header/bitset) / [cpprefjp](https://cpprefjp.github.io/reference/bitset.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bitset) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/bitset) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bitset)|| +|[<cassert>](http://eel.is/c++draft/cassert.syn)|[en](https://en.cppreference.com/w/cpp/header/cassert) / [jp](https://ja.cppreference.com/w/cpp/header/cassert) / [cpprefjp](https://cpprefjp.github.io/reference/cassert.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cassert) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cassert) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cassert)|| +|[<cctype>](http://eel.is/c++draft/cctype.syn)|[en](https://en.cppreference.com/w/cpp/header/cctype) / [jp](https://ja.cppreference.com/w/cpp/header/cctype) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cctype) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cctype) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cctype)|| +|[<cerrno>](http://eel.is/c++draft/cerrno.syn)|[en](https://en.cppreference.com/w/cpp/header/cerrno) / [jp](https://ja.cppreference.com/w/cpp/header/cerrno) / [cpprefjp](https://cpprefjp.github.io/reference/cerrno.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cerrno) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cerrno) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cerrno)|| +|[<cfenv>](http://eel.is/c++draft/cfenv.syn)|[en](https://en.cppreference.com/w/cpp/header/cfenv) / [jp](https://ja.cppreference.com/w/cpp/header/cfenv) / [cpprefjp](https://cpprefjp.github.io/reference/cfenv.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cfenv) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cfenv) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cfenv)|since C++11| +|[<cfloat>](http://eel.is/c++draft/cfloat.syn)|[en](https://en.cppreference.com/w/cpp/header/cfloat) / [jp](https://ja.cppreference.com/w/cpp/header/cfloat) / [cpprefjp](https://cpprefjp.github.io/reference/cfloat.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cfloat) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cfloat) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cfloat)|| +|[<charconv>](http://eel.is/c++draft/charconv.syn)|[en](https://en.cppreference.com/w/cpp/header/charconv) / [jp](https://ja.cppreference.com/w/cpp/header/charconv) / [cpprefjp](https://cpprefjp.github.io/reference/charconv.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/charconv) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/charconv) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/charconv)|since C++17| +|[<chrono>](http://eel.is/c++draft/time.syn)|[en](https://en.cppreference.com/w/cpp/header/chrono) / [jp](https://ja.cppreference.com/w/cpp/header/chrono) / [cpprefjp](https://cpprefjp.github.io/reference/chrono.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/chrono) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/chrono) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/chrono)|since C++11| +|[<cinttypes>](http://eel.is/c++draft/cinttypes.syn)|[en](https://en.cppreference.com/w/cpp/header/cinttypes) / [jp](https://ja.cppreference.com/w/cpp/header/cinttypes) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cinttypes) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cinttypes) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cinttypes)|since C++11| +|[<climits>](http://eel.is/c++draft/climits.syn)|[en](https://en.cppreference.com/w/cpp/header/climits) / [jp](https://ja.cppreference.com/w/cpp/header/climits) / [cpprefjp](https://cpprefjp.github.io/reference/climits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/climits) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/climits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/climits)|| +|[<clocale>](http://eel.is/c++draft/clocale.syn)|[en](https://en.cppreference.com/w/cpp/header/clocale) / [jp](https://ja.cppreference.com/w/cpp/header/clocale) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/clocale) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/clocale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/clocale)|| +|[<cmath>](http://eel.is/c++draft/cmath.syn)|[en](https://en.cppreference.com/w/cpp/header/cmath) / [jp](https://ja.cppreference.com/w/cpp/header/cmath) / [cpprefjp](https://cpprefjp.github.io/reference/cmath.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cmath) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cmath)|| +|[<compare>](http://eel.is/c++draft/compare.syn)|[en](https://en.cppreference.com/w/cpp/header/compare) / [jp](https://ja.cppreference.com/w/cpp/header/compare) / cpprefjp|libstdc++ / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/compare) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/compare)|since C++20| +|[<complex>](http://eel.is/c++draft/complex.syn)|[en](https://en.cppreference.com/w/cpp/header/complex) / [jp](https://ja.cppreference.com/w/cpp/header/complex) / [cpprefjp](https://cpprefjp.github.io/reference/complex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/complex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/complex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/complex)|| +|[<concepts>](http://eel.is/c++draft/concepts.syn)|[en](https://en.cppreference.com/w/cpp/header/concepts) / [jp](https://ja.cppreference.com/w/cpp/header/concepts) / [cpprefjp](https://cpprefjp.github.io/reference/concepts.html)|libstdc++ / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/concepts)|since C++20| +|[<condition_variable>](http://eel.is/c++draft/condition.variable.syn)|[en](https://en.cppreference.com/w/cpp/header/condition_variable) / [jp](https://ja.cppreference.com/w/cpp/header/condition_variable) / [cpprefjp](https://cpprefjp.github.io/reference/condition_variable.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/condition_variable) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/condition_variable) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/condition_variable)|since C++11| +|[<coroutine>](http://eel.is/c++draft/coroutine.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<csetjmp>](http://eel.is/c++draft/csetjmp.syn)|[en](https://en.cppreference.com/w/cpp/header/csetjmp) / [jp](https://ja.cppreference.com/w/cpp/header/csetjmp) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csetjmp) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/csetjmp) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csetjmp)|| +|[<csignal>](http://eel.is/c++draft/csignal.syn)|[en](https://en.cppreference.com/w/cpp/header/csignal) / [jp](https://ja.cppreference.com/w/cpp/header/csignal) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csignal) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/csignal) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csignal)|| +|[<cstdarg>](http://eel.is/c++draft/cstdarg.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdarg) / [jp](https://ja.cppreference.com/w/cpp/header/cstdarg) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdarg) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdarg) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdarg)|| +|[<cstddef>](http://eel.is/c++draft/cstddef.syn)|[en](https://en.cppreference.com/w/cpp/header/cstddef) / [jp](https://ja.cppreference.com/w/cpp/header/cstddef) / [cpprefjp](https://cpprefjp.github.io/reference/cstddef.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstddef) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstddef) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstddef)|| +|[<cstdint>](http://eel.is/c++draft/cstdint.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdint) / [jp](https://ja.cppreference.com/w/cpp/header/cstdint) / [cpprefjp](https://cpprefjp.github.io/reference/cstdint.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdint) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdint) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdint)|since C++11| +|[<cstdio>](http://eel.is/c++draft/cstdio.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdio) / [jp](https://ja.cppreference.com/w/cpp/header/cstdio) / [cpprefjp](https://cpprefjp.github.io/reference/cstdio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdio) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdio)|| +|[<cstdlib>](http://eel.is/c++draft/cstdlib.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdlib) / [jp](https://ja.cppreference.com/w/cpp/header/cstdlib) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdlib) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdlib) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdlib)|| +|[<cstring>](http://eel.is/c++draft/cstring.syn)|[en](https://en.cppreference.com/w/cpp/header/cstring) / [jp](https://ja.cppreference.com/w/cpp/header/cstring) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstring) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstring) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstring)|| +|[<ctime>](http://eel.is/c++draft/ctime.syn)|[en](https://en.cppreference.com/w/cpp/header/ctime) / [jp](https://ja.cppreference.com/w/cpp/header/ctime) / [cpprefjp](https://cpprefjp.github.io/reference/ctime.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctime) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ctime) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctime)|| +|[<cuchar>](http://eel.is/c++draft/cuchar.syn)|[en](https://en.cppreference.com/w/cpp/header/cuchar) / [jp](https://ja.cppreference.com/w/cpp/header/cuchar) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cuchar) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cuchar)|since C++11| +|[<cwchar>](http://eel.is/c++draft/cwchar.syn)|[en](https://en.cppreference.com/w/cpp/header/cwchar) / [jp](https://ja.cppreference.com/w/cpp/header/cwchar) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cwchar) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cwchar) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cwchar)|| +|[<cwctype>](http://eel.is/c++draft/cwctype.syn)|[en](https://en.cppreference.com/w/cpp/header/cwctype) / [jp](https://ja.cppreference.com/w/cpp/header/cwctype) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cwctype) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cwctype) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cwctype)|| +|[<deque>](http://eel.is/c++draft/deque.syn)|[en](https://en.cppreference.com/w/cpp/header/deque) / [jp](https://ja.cppreference.com/w/cpp/header/deque) / [cpprefjp](https://cpprefjp.github.io/reference/deque.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/deque) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/deque) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/deque)|| +|[<exception>](http://eel.is/c++draft/exception.syn)|[en](https://en.cppreference.com/w/cpp/header/exception) / [jp](https://ja.cppreference.com/w/cpp/header/exception) / [cpprefjp](https://cpprefjp.github.io/reference/exception.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/exception) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/exception) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/exception)|| +|[<execution>](http://eel.is/c++draft/execution.syn)|[en](https://en.cppreference.com/w/cpp/header/execution) / [jp](https://ja.cppreference.com/w/cpp/header/execution) / [cpprefjp](https://cpprefjp.github.io/reference/execution.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/execution) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/execution) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/execution)|since C++17| +|[<filesystem>](http://eel.is/c++draft/fs.filesystem.syn)|[en](https://en.cppreference.com/w/cpp/header/filesystem) / [jp](https://ja.cppreference.com/w/cpp/header/filesystem) / [cpprefjp](https://cpprefjp.github.io/reference/filesystem.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/filesystem) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/filesystem) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/filesystem)|since C++17| +|[<format>](http://eel.is/c++draft/format.syn)|[en](https://en.cppreference.com/w/cpp/header/format) / [jp](https://ja.cppreference.com/w/cpp/header/format) / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<forward_list>](http://eel.is/c++draft/forward.list.syn)|[en](https://en.cppreference.com/w/cpp/header/forward_list) / [jp](https://ja.cppreference.com/w/cpp/header/forward_list) / [cpprefjp](https://cpprefjp.github.io/reference/forward_list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/forward_list) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/forward_list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/forward_list)|since C++11| +|[<fstream>](http://eel.is/c++draft/fstream.syn)|[en](https://en.cppreference.com/w/cpp/header/fstream) / [jp](https://ja.cppreference.com/w/cpp/header/fstream) / [cpprefjp](https://cpprefjp.github.io/reference/fstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/fstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/fstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/fstream)|| +|[<functional>](http://eel.is/c++draft/functional.syn)|[en](https://en.cppreference.com/w/cpp/header/functional) / [jp](https://ja.cppreference.com/w/cpp/header/functional) / [cpprefjp](https://cpprefjp.github.io/reference/functional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/functional) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/functional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/functional)|| +|[<future>](http://eel.is/c++draft/future.syn)|[en](https://en.cppreference.com/w/cpp/header/future) / [jp](https://ja.cppreference.com/w/cpp/header/future) / [cpprefjp](https://cpprefjp.github.io/reference/future.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/future) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/future) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/future)|since C++11| +|[<initializer_list>](http://eel.is/c++draft/initializer.list.syn)|[en](https://en.cppreference.com/w/cpp/header/initializer_list) / [jp](https://ja.cppreference.com/w/cpp/header/initializer_list) / [cpprefjp](https://cpprefjp.github.io/reference/initializer_list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/initializer_list) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/initializer_list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/initializer_list)|since C++11| +|[<iomanip>](http://eel.is/c++draft/iomanip.syn)|[en](https://en.cppreference.com/w/cpp/header/iomanip) / [jp](https://ja.cppreference.com/w/cpp/header/iomanip) / [cpprefjp](https://cpprefjp.github.io/reference/iomanip.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iomanip) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iomanip) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iomanip)|| +|[<ios>](http://eel.is/c++draft/ios.syn)|[en](https://en.cppreference.com/w/cpp/header/ios) / [jp](https://ja.cppreference.com/w/cpp/header/ios) / [cpprefjp](https://cpprefjp.github.io/reference/ios.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ios) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ios) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ios)|| +|[<iosfwd>](http://eel.is/c++draft/iosfwd.syn)|[en](https://en.cppreference.com/w/cpp/header/iosfwd) / [jp](https://ja.cppreference.com/w/cpp/header/iosfwd) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iosfwd) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iosfwd) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iosfwd)|| +|[<iostream>](http://eel.is/c++draft/iostream.syn)|[en](https://en.cppreference.com/w/cpp/header/iostream) / [jp](https://ja.cppreference.com/w/cpp/header/iostream) / [cpprefjp](https://cpprefjp.github.io/reference/iostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iostream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iostream)|| +|[<istream>](http://eel.is/c++draft/istream.syn)|[en](https://en.cppreference.com/w/cpp/header/istream) / [jp](https://ja.cppreference.com/w/cpp/header/istream) / [cpprefjp](https://cpprefjp.github.io/reference/istream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/istream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/istream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/istream)|| +|[<iterator>](http://eel.is/c++draft/iterator.synopsis)|[en](https://en.cppreference.com/w/cpp/header/iterator) / [jp](https://ja.cppreference.com/w/cpp/header/iterator) / [cpprefjp](https://cpprefjp.github.io/reference/iterator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iterator) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iterator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iterator)|| +|[<latch>](http://eel.is/c++draft/latch.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<limits>](http://eel.is/c++draft/limits.syn)|[en](https://en.cppreference.com/w/cpp/header/limits) / [jp](https://ja.cppreference.com/w/cpp/header/limits) / [cpprefjp](https://cpprefjp.github.io/reference/limits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/limits) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/limits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/limits)|| +|[<list>](http://eel.is/c++draft/list.syn)|[en](https://en.cppreference.com/w/cpp/header/list) / [jp](https://ja.cppreference.com/w/cpp/header/list) / [cpprefjp](https://cpprefjp.github.io/reference/list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/list) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/list)|| +|[<locale>](http://eel.is/c++draft/locale.syn)|[en](https://en.cppreference.com/w/cpp/header/locale) / [jp](https://ja.cppreference.com/w/cpp/header/locale) / [cpprefjp](https://cpprefjp.github.io/reference/locale.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/locale) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/locale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/locale)|| +|[<map>](http://eel.is/c++draft/associative.map.syn)|[en](https://en.cppreference.com/w/cpp/header/map) / [jp](https://ja.cppreference.com/w/cpp/header/map) / [cpprefjp](https://cpprefjp.github.io/reference/map.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/map) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/map) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/map)|| +|[<memory>](http://eel.is/c++draft/memory.syn)|[en](https://en.cppreference.com/w/cpp/header/memory) / [jp](https://ja.cppreference.com/w/cpp/header/memory) / [cpprefjp](https://cpprefjp.github.io/reference/memory.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/memory) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory)|| +|[<memory_resource>](http://eel.is/c++draft/mem.res.syn)|[en](https://en.cppreference.com/w/cpp/header/memory_resource) / [jp](https://ja.cppreference.com/w/cpp/header/memory_resource) / [cpprefjp](https://cpprefjp.github.io/reference/memory_resource.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory_resource) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory_resource)|since C++17| +|[<mutex>](http://eel.is/c++draft/mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/mutex) / [jp](https://ja.cppreference.com/w/cpp/header/mutex) / [cpprefjp](https://cpprefjp.github.io/reference/mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/mutex)|since C++11| +|[<new>](http://eel.is/c++draft/new.syn)|[en](https://en.cppreference.com/w/cpp/header/new) / [jp](https://ja.cppreference.com/w/cpp/header/new) / [cpprefjp](https://cpprefjp.github.io/reference/new.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/new) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/new) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/new)|| +|[<numbers>](http://eel.is/c++draft/numbers.syn)|en / jp / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/numeric) / MSVC|since C++20| +|[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| +|[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| +|[<ostream>](http://eel.is/c++draft/ostream.syn)|[en](https://en.cppreference.com/w/cpp/header/ostream) / [jp](https://ja.cppreference.com/w/cpp/header/ostream) / [cpprefjp](https://cpprefjp.github.io/reference/ostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ostream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ostream)|| +|[<queue>](http://eel.is/c++draft/queue.syn)|[en](https://en.cppreference.com/w/cpp/header/queue) / [jp](https://ja.cppreference.com/w/cpp/header/queue) / [cpprefjp](https://cpprefjp.github.io/reference/queue.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/queue) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/queue) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/queue)|| +|[<random>](http://eel.is/c++draft/rand.synopsis)|[en](https://en.cppreference.com/w/cpp/header/random) / [jp](https://ja.cppreference.com/w/cpp/header/random) / [cpprefjp](https://cpprefjp.github.io/reference/random.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/random) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/random) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/random)|since C++11| +|[<ranges>](http://eel.is/c++draft/ranges.syn)|[en](https://en.cppreference.com/w/cpp/header/ranges) / [jp](https://ja.cppreference.com/w/cpp/header/ranges) / cpprefjp|libstdc++ / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ranges)|since C++20| +|[<ratio>](http://eel.is/c++draft/ratio.syn)|[en](https://en.cppreference.com/w/cpp/header/ratio) / [jp](https://ja.cppreference.com/w/cpp/header/ratio) / [cpprefjp](https://cpprefjp.github.io/reference/ratio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ratio) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ratio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ratio)|since C++11| +|[<regex>](http://eel.is/c++draft/re.syn)|[en](https://en.cppreference.com/w/cpp/header/regex) / [jp](https://ja.cppreference.com/w/cpp/header/regex) / [cpprefjp](https://cpprefjp.github.io/reference/regex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/regex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/regex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/regex)|since C++11| +|[<scoped_allocator>](http://eel.is/c++draft/allocator.adaptor.syn)|[en](https://en.cppreference.com/w/cpp/header/scoped_allocator) / [jp](https://ja.cppreference.com/w/cpp/header/scoped_allocator) / [cpprefjp](https://cpprefjp.github.io/reference/scoped_allocator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/scoped_allocator) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/scoped_allocator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/scoped_allocator)|since C++11| +|[<semaphore>](http://eel.is/c++draft/semaphore.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| +|[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| +|[<source_location>](http://eel.is/c++draft/source_location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<span>](http://eel.is/c++draft/span.syn)|[en](https://en.cppreference.com/w/cpp/header/span) / [jp](https://ja.cppreference.com/w/cpp/header/span) / [cpprefjp](https://cpprefjp.github.io/reference/span.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/span) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/span) / MSVC|since C++20| +|[<sstream>](http://eel.is/c++draft/sstream.syn)|[en](https://en.cppreference.com/w/cpp/header/sstream) / [jp](https://ja.cppreference.com/w/cpp/header/sstream) / [cpprefjp](https://cpprefjp.github.io/reference/sstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/sstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/sstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/sstream)|| +|[<stack>](http://eel.is/c++draft/stack.syn)|[en](https://en.cppreference.com/w/cpp/header/stack) / [jp](https://ja.cppreference.com/w/cpp/header/stack) / [cpprefjp](https://cpprefjp.github.io/reference/stack.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stack) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/stack) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stack)|| +|[<stdexcept>](http://eel.is/c++draft/stdexcept.syn)|[en](https://en.cppreference.com/w/cpp/header/stdexcept) / [jp](https://ja.cppreference.com/w/cpp/header/stdexcept) / [cpprefjp](https://cpprefjp.github.io/reference/stdexcept.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stdexcept) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/stdexcept) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stdexcept)|| +|[<stop_token>](http://eel.is/c++draft/thread.stoptoken.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<streambuf>](http://eel.is/c++draft/streambuf.syn)|[en](https://en.cppreference.com/w/cpp/header/streambuf) / [jp](https://ja.cppreference.com/w/cpp/header/streambuf) / [cpprefjp](https://cpprefjp.github.io/reference/streambuf.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/streambuf) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/streambuf) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/streambuf)|| +|[<string>](http://eel.is/c++draft/string.syn)|[en](https://en.cppreference.com/w/cpp/header/string) / [jp](https://ja.cppreference.com/w/cpp/header/string) / [cpprefjp](https://cpprefjp.github.io/reference/string.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/string) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string)|| +|[<string_view>](http://eel.is/c++draft/string.view.synop)|[en](https://en.cppreference.com/w/cpp/header/string_view) / [jp](https://ja.cppreference.com/w/cpp/header/string_view) / [cpprefjp](https://cpprefjp.github.io/reference/string_view.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string_view) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/string_view) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string_view)|since C++17| +|[<syncstream>](http://eel.is/c++draft/syncstream.syn)|[en](https://en.cppreference.com/w/cpp/header/syncstream) / [jp](https://ja.cppreference.com/w/cpp/header/syncstream) / [cpprefjp](https://cpprefjp.github.io/reference/syncstream.html)|libstdc++ / libc++ / MSVC|since C++20| +|[<system_error>](http://eel.is/c++draft/system.error.syn)|[en](https://en.cppreference.com/w/cpp/header/system_error) / [jp](https://ja.cppreference.com/w/cpp/header/system_error) / [cpprefjp](https://cpprefjp.github.io/reference/system_error.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/system_error) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/system_error) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/system_error)|since C++11| +|[<thread>](http://eel.is/c++draft/thread.syn)|[en](https://en.cppreference.com/w/cpp/header/thread) / [jp](https://ja.cppreference.com/w/cpp/header/thread) / [cpprefjp](https://cpprefjp.github.io/reference/thread.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/thread) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/thread) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/thread)|since C++11| +|[<tuple>](http://eel.is/c++draft/tuple.syn)|[en](https://en.cppreference.com/w/cpp/header/tuple) / [jp](https://ja.cppreference.com/w/cpp/header/tuple) / [cpprefjp](https://cpprefjp.github.io/reference/tuple.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/tuple) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/tuple) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/tuple)|since C++11| +|[<type_traits>](http://eel.is/c++draft/meta.type.synop)|[en](https://en.cppreference.com/w/cpp/header/type_traits) / [jp](https://ja.cppreference.com/w/cpp/header/type_traits) / [cpprefjp](https://cpprefjp.github.io/reference/type_traits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/type_traits) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/type_traits)|since C++11| +|[<typeindex>](http://eel.is/c++draft/type.index.synopsis)|[en](https://en.cppreference.com/w/cpp/header/typeindex) / [jp](https://ja.cppreference.com/w/cpp/header/typeindex) / [cpprefjp](https://cpprefjp.github.io/reference/typeindex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/typeindex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/typeindex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/typeindex)|since C++11| +|[<typeinfo>](http://eel.is/c++draft/typeinfo.syn)|[en](https://en.cppreference.com/w/cpp/header/typeinfo) / [jp](https://ja.cppreference.com/w/cpp/header/typeinfo) / [cpprefjp](https://cpprefjp.github.io/reference/typeinfo.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/typeinfo) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/typeinfo) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/typeinfo)|| +|[<unordered_map>](http://eel.is/c++draft/unord.map.syn)|[en](https://en.cppreference.com/w/cpp/header/unordered_map) / [jp](https://ja.cppreference.com/w/cpp/header/unordered_map) / [cpprefjp](https://cpprefjp.github.io/reference/unordered_map.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/unordered_map) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/unordered_map) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/unordered_map)|since C++11| +|[<unordered_set>](http://eel.is/c++draft/unord.set.syn)|[en](https://en.cppreference.com/w/cpp/header/unordered_set) / [jp](https://ja.cppreference.com/w/cpp/header/unordered_set) / [cpprefjp](https://cpprefjp.github.io/reference/unordered_set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/unordered_set) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/unordered_set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/unordered_set)|since C++11| +|[<utility>](http://eel.is/c++draft/utility)|[en](https://en.cppreference.com/w/cpp/header/utility) / [jp](https://ja.cppreference.com/w/cpp/header/utility) / [cpprefjp](https://cpprefjp.github.io/reference/utility.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/utility) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/utility) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/utility)|| +|[<valarray>](http://eel.is/c++draft/valarray.syn)|[en](https://en.cppreference.com/w/cpp/header/valarray) / [jp](https://ja.cppreference.com/w/cpp/header/valarray) / [cpprefjp](https://cpprefjp.github.io/reference/valarray.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/valarray) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/valarray) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/valarray)|| +|[<variant>](http://eel.is/c++draft/variant.syn)|[en](https://en.cppreference.com/w/cpp/header/variant) / [jp](https://ja.cppreference.com/w/cpp/header/variant) / [cpprefjp](https://cpprefjp.github.io/reference/variant.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/variant) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/variant)|since C++17| +|[<vector>](http://eel.is/c++draft/vector.syn)|[en](https://en.cppreference.com/w/cpp/header/vector) / [jp](https://ja.cppreference.com/w/cpp/header/vector) / [cpprefjp](https://cpprefjp.github.io/reference/vector.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/vector) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/vector) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/vector)|| +|[<version>](http://eel.is/c++draft/support.limits.general)|[en](https://en.cppreference.com/w/cpp/header/version) / [jp](https://ja.cppreference.com/w/cpp/header/version) / [cpprefjp](https://cpprefjp.github.io/reference/version.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/version) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/version) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/version)|| + + +## 非推奨または削除 + +|ヘッダ|リファレンス|実装|バージョン| +|---|---|---|---| +|[<ciso646>](http://eel.is/c++draft/depr.iso646.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ciso646) / [jp](https://ja.cppreference.com/w/cpp/header/ciso646) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ciso646) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ciso646) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ciso646)|removed in C++20| +|[<ccomplex>](http://eel.is/c++draft/depr.complex.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ccomplex) / [jp](https://ja.cppreference.com/w/cpp/header/ccomplex) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ccomplex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ccomplex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ccomplex)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<cstdalign>](http://eel.is/c++draft/depr.stdalign.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdalign) / [jp](https://ja.cppreference.com/w/cpp/header/cstdalign) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdalign) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdalign)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<cstdbool>](http://eel.is/c++draft/depr.stdbool.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdbool) / [jp](https://ja.cppreference.com/w/cpp/header/cstdbool) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdbool) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdbool) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdbool)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<ctgmath>](http://eel.is/c++draft/depr.tgmath.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ctgmath) / [jp](https://ja.cppreference.com/w/cpp/header/ctgmath) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctgmath) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ctgmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctgmath)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<codecvt>](http://eel.is/c++draft/depr.codecvt.syn)|[en](https://en.cppreference.com/w/cpp/header/codecvt) / [jp](https://ja.cppreference.com/w/cpp/header/codecvt) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/codecvt) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/codecvt) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/codecvt)|since C++11,
    deprecated in C++17| +|[<strstream>](http://eel.is/c++draft/depr.strstream.syn)|[en](https://en.cppreference.com/w/cpp/header/strstream) / [jp](https://ja.cppreference.com/w/cpp/header/strstream) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/include/backward/strstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/strstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/strstream)|deprecated in C++98| diff --git a/mkdocs.yml b/mkdocs.yml index 9d4d8db..d983243 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -54,7 +54,8 @@ nav: - C++23 以降に向けた提案: standardization/cppx.md - 標準化会議: standardization/meetings.md - 処理系の対応状況: standardization/status.md - - C++ 規格: standardization/working-drafts.md + - 規格ドラフト: standardization/working-drafts.md + - 標準ライブラリ: standardization/header.md - 記事: - コメントアウトのトリック: articles/comment-tricks.md - なぜかコンパイルできる: articles/it-compiles.md From 431b2866c59c4af307ef2135274887ec39efced4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 5 Oct 2019 12:05:22 +0900 Subject: [PATCH 063/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 1051a03..3783054 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -33,6 +33,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [C++20 の新機能 記事加筆](https://github.com/cppmap/cppmap.docs/pull/20) - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/21) - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/27) + - [標準ライブラリ 執筆協力](https://github.com/cppmap/cppmap.docs/issues/28) - [@tak0kada](https://twitter.com/tak0kada) さん - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/26) - [@tetzrom](https://twitter.com/tetzrom) さん From 4f77a8e8796f8adb8a378cc1ecf8ba373aba34ff Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 5 Oct 2019 12:43:37 +0900 Subject: [PATCH 064/457] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/header.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index af41d79..c3ad7ee 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -63,9 +63,9 @@ |[<memory_resource>](http://eel.is/c++draft/mem.res.syn)|[en](https://en.cppreference.com/w/cpp/header/memory_resource) / [jp](https://ja.cppreference.com/w/cpp/header/memory_resource) / [cpprefjp](https://cpprefjp.github.io/reference/memory_resource.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory_resource) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory_resource)|since C++17| |[<mutex>](http://eel.is/c++draft/mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/mutex) / [jp](https://ja.cppreference.com/w/cpp/header/mutex) / [cpprefjp](https://cpprefjp.github.io/reference/mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/mutex)|since C++11| |[<new>](http://eel.is/c++draft/new.syn)|[en](https://en.cppreference.com/w/cpp/header/new) / [jp](https://ja.cppreference.com/w/cpp/header/new) / [cpprefjp](https://cpprefjp.github.io/reference/new.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/new) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/new) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/new)|| -|[<numbers>](http://eel.is/c++draft/numbers.syn)|en / jp / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/numeric) / MSVC|since C++20| -|[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| -|[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| +|[<numbers>](http://eel.is/c++draft/numbers.syn)|en / jp / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / libc++ / MSVC|since C++20| +|[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/numeric) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| +|[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| |[<ostream>](http://eel.is/c++draft/ostream.syn)|[en](https://en.cppreference.com/w/cpp/header/ostream) / [jp](https://ja.cppreference.com/w/cpp/header/ostream) / [cpprefjp](https://cpprefjp.github.io/reference/ostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ostream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ostream)|| |[<queue>](http://eel.is/c++draft/queue.syn)|[en](https://en.cppreference.com/w/cpp/header/queue) / [jp](https://ja.cppreference.com/w/cpp/header/queue) / [cpprefjp](https://cpprefjp.github.io/reference/queue.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/queue) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/queue) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/queue)|| |[<random>](http://eel.is/c++draft/rand.synopsis)|[en](https://en.cppreference.com/w/cpp/header/random) / [jp](https://ja.cppreference.com/w/cpp/header/random) / [cpprefjp](https://cpprefjp.github.io/reference/random.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/random) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/random) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/random)|since C++11| From 19916414528a80ba1511f7c7a2c7212873c766b9 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 6 Oct 2019 13:25:59 +0900 Subject: [PATCH 065/457] =?UTF-8?q?=E4=BC=9A=E8=AD=B0=E6=83=85=E5=A0=B1?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/meetings.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index a2dc018..88a77e1 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -4,17 +4,29 @@ description: C++ の規格を議論する C++ 標準化委員会の主要会議 C++ の規格を議論する C++ 標準化委員会の主要会議の開催情報です。 +## 2022 Portland +#### 場所 +- 2022-02-07 to 12 / ポートランド, オレゴン州, 米国 + +## 2021 未定 +#### 場所 +- 2021 秋 / 未定 + +## 2021 Montreal +#### 場所 +- 2021 夏 / モントリオール, カナダ + ## 2021 Kona #### 場所 -- 2021-02 / コナ, ハワイ州, 米国 +- 2021-02-22 to 27 / コナ, ハワイ州, 米国 ## 2020 New York (予定) #### 場所 - 2020-11 / ニューヨーク, ニューヨーク州, 米国 -## 2020 Bulgaria +## 2020 Varna #### 場所 -- 2020-06-01 to 06 / ブルガリア +- 2020-06-01 to 06 / ヴァルナ, ブルガリア ## 2020 Prague #### 場所 From de7d2e96c381be0565cb9083bcdb9781ca8fcfa8 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 6 Oct 2019 17:24:00 +0900 Subject: [PATCH 066/457] =?UTF-8?q?desc=20=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/header.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index c3ad7ee..a35d307 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -1,3 +1,4 @@ +description: C++ 標準ライブラリヘッダの規格書、リファレンス、各種実装リスト ## C++ 標準ライブラリ From 02b98d8c4ffb17ff7ecdd14fbb1ae72b87a1b0d3 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 6 Oct 2019 20:00:52 +0900 Subject: [PATCH 067/457] P1771R1 --- docs/standardization/cpp20.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index f71bc0c..c4be697 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -495,6 +495,30 @@ int main() ``` +### コンストラクタに `[[nodiscard]]` が使えるように [(P1771R1)](http://wg21.link/p1771r1) +C++17 で `[[nodiscard]]` が導入された際、仕様ではコンストラクタを対象としていませんでした(ただし、GCC では警告を出しつつもコンストラクタに付けた `[[nodiscard]]` をチェックしていました)。コンストラクタの呼び出しによって作成された一時オブジェクトが意図せず無視されたときに警告を出せると、ユーザの間違いを減らせます。そこで、コンストラクタにも `[[nodiscard]]` 属性を付けられるよう、C++17 向けの規格にさかのぼって仕様が修正され、C++20 および、この変更に対応した C++17 コンパイラで新仕様を利用できるようになります。なお、デストラクタを定義していた場合でも警告は消えません。 +```C++ +struct Circle +{ + double x, y, r; + + Circle() = default; + + [[nodiscard]] constexpr Circle(double _x, double _y, double _r) noexcept + : x(_x), y(_y), r(_r) {} + + void draw() const { /* ... */ } +}; + +int main() +{ + Circle(200, 300, 50); // warning: nodiscard 属性のコンストラクタで作成された一時オブジェクトを無視 + + Circle(400, 300, 50).draw(); +} +``` + + ## 標準ライブラリ ### 文字列の先頭や末尾が、ある文字列と一致するか判定 [(P0457R2)](https://wg21.link/P0457R2) From 11fc07f3e4199982ef7b2a3e6eb946957cfe13e6 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 7 Oct 2019 09:30:37 +0900 Subject: [PATCH 068/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=83=88=E6=96=B9=E6=B3=95=E8=BF=BD?= =?UTF-8?q?=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 61dd7b4..58390c2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,7 +10,10 @@ int main() ``` ## このサイトについて -C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 +C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 +管理者 [@Reputeless](https://twitter.com/Reputeless) と、[コントリビュータの皆様](contribution/contributors/) によって執筆されています。 + +- [コントリビュート方法](https://github.com/cppmap/cppmap.docs) ## ライセンス CC0 From 4b786c8140ad93f66e9e12dce52ed005901143fc Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 7 Oct 2019 09:35:44 +0900 Subject: [PATCH 069/457] =?UTF-8?q?=E3=83=AA=E3=83=B3=E3=82=AF=E3=81=AE?= =?UTF-8?q?=E9=96=8B=E3=81=8D=E6=96=B9=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 58390c2..61d6c30 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,7 +11,7 @@ int main() ## このサイトについて C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 -管理者 [@Reputeless](https://twitter.com/Reputeless) と、[コントリビュータの皆様](contribution/contributors/) によって執筆されています。 +管理者
    @Reputeless と、コントリビュータの皆様 によって執筆されています。 - [コントリビュート方法](https://github.com/cppmap/cppmap.docs) From f08dad5a86bde9664f2d5cde50f302a11ddebcf0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 7 Oct 2019 09:53:03 +0900 Subject: [PATCH 070/457] =?UTF-8?q?=E3=82=A2=E3=83=AB=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=83=99=E3=83=83=E3=83=88=E9=A0=86=E3=81=AB=E4=B8=A6=E3=81=B3?= =?UTF-8?q?=E6=9B=BF=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/header.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index a35d307..a1a942a 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -106,10 +106,10 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |ヘッダ|リファレンス|実装|バージョン| |---|---|---|---| -|[<ciso646>](http://eel.is/c++draft/depr.iso646.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ciso646) / [jp](https://ja.cppreference.com/w/cpp/header/ciso646) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ciso646) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ciso646) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ciso646)|removed in C++20| |[<ccomplex>](http://eel.is/c++draft/depr.complex.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ccomplex) / [jp](https://ja.cppreference.com/w/cpp/header/ccomplex) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ccomplex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ccomplex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ccomplex)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<ciso646>](http://eel.is/c++draft/depr.iso646.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ciso646) / [jp](https://ja.cppreference.com/w/cpp/header/ciso646) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ciso646) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ciso646) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ciso646)|removed in C++20| +|[<codecvt>](http://eel.is/c++draft/depr.codecvt.syn)|[en](https://en.cppreference.com/w/cpp/header/codecvt) / [jp](https://ja.cppreference.com/w/cpp/header/codecvt) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/codecvt) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/codecvt) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/codecvt)|since C++11,
    deprecated in C++17| |[<cstdalign>](http://eel.is/c++draft/depr.stdalign.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdalign) / [jp](https://ja.cppreference.com/w/cpp/header/cstdalign) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdalign) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdalign)|since C++11,
    deprecated in C++17,
    removed in C++20| |[<cstdbool>](http://eel.is/c++draft/depr.stdbool.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdbool) / [jp](https://ja.cppreference.com/w/cpp/header/cstdbool) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdbool) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdbool) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdbool)|since C++11,
    deprecated in C++17,
    removed in C++20| |[<ctgmath>](http://eel.is/c++draft/depr.tgmath.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ctgmath) / [jp](https://ja.cppreference.com/w/cpp/header/ctgmath) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctgmath) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ctgmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctgmath)|since C++11,
    deprecated in C++17,
    removed in C++20| -|[<codecvt>](http://eel.is/c++draft/depr.codecvt.syn)|[en](https://en.cppreference.com/w/cpp/header/codecvt) / [jp](https://ja.cppreference.com/w/cpp/header/codecvt) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/codecvt) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/codecvt) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/codecvt)|since C++11,
    deprecated in C++17| |[<strstream>](http://eel.is/c++draft/depr.strstream.syn)|[en](https://en.cppreference.com/w/cpp/header/strstream) / [jp](https://ja.cppreference.com/w/cpp/header/strstream) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/include/backward/strstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/strstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/strstream)|deprecated in C++98| From 025e64f0f45a9e7d5071ea9b11dc5e0f09e02835 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 7 Oct 2019 15:01:01 +0900 Subject: [PATCH 071/457] =?UTF-8?q?caddicpp=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 99f8e9f..1127bac 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -118,8 +118,9 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #6 [(2019-10-09)](https://caddi.connpass.com/event/150414/) | 派生と継承、Type Erasure | | | #5 [(2019-09-25)](https://caddi.connpass.com/event/147690/) | 標準変換、オーバーロード解決、テンプレートの実引数推定 | [:fa-play:](https://youtu.be/bUyUDHPk4ik) | -| #4 [(2019-09-11)](https://caddi.connpass.com/event/146786/) | C++ 標準規格の用語解説 | [:fa-play:](https://youtu.be/OYBLK4Lwudw) | +| #4 [(2019-09-11)](https://caddi.connpass.com/event/146851/) | C++ 標準規格の用語解説 | [:fa-play:](https://youtu.be/OYBLK4Lwudw) | | #3 [(2019-08-30)](https://caddi.connpass.com/event/145070/) | メタプログラミング | | | #2 [(2019-08-21)](https://caddi.connpass.com/event/142476/) | テンプレート基礎 | [:fa-play:](https://youtu.be/fz8ahXzOUNE) | | #1 [(2019-07-30)](https://caddi.connpass.com/event/140080/) | ポインターについて | [:fa-play:](https://youtu.be/d9VgUHghlog) | From 0e8b0edd532788c44c2cb236deb7d1a1d98ec378 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 7 Oct 2019 16:25:56 +0900 Subject: [PATCH 072/457] cppmix 6 --- docs/learn/studymeetings.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 1127bac..d005dcf 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -13,6 +13,12 @@ description: 国内で開催されている C++ 関連の勉強会イベント - [Youtube チャンネル](https://www.youtube.com/channel/UC3c011RjfXoU4Gj86V7sb_w) - Twitter ハッシュタグ [#cppmix](https://twitter.com/search?q=%23cppmix) + +### C++ MIX #6 [(2019-11-20)](https://cppmix.connpass.com/event/150527/) +| タイトル | 発表者 | ムービー | +|-----------------------------|-----------------|------| +| | | | + ### C++ MIX #5 [(2019-09-04)](https://cppmix.connpass.com/event/141908/) | タイトル | 発表者 | ムービー | |-----------------------------|-----------------|------| From 7208a2cba093f9ca251c453d9b4803a3025e7dca Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 9 Oct 2019 10:49:09 +0900 Subject: [PATCH 073/457] =?UTF-8?q?C++20=20=E3=82=92=E7=9B=B8=E8=AB=87?= =?UTF-8?q?=E3=81=97=E3=81=AA=E3=81=8C=E3=82=89=E8=AA=BF=E3=81=B9=E3=82=8B?= =?UTF-8?q?=E4=BC=9A=203=20=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3?= =?UTF-8?q?=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index d005dcf..5810a1a 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -112,7 +112,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 参加者間の共有ドキュメント | |-------------------------------------------------------------------|------------------------------------------------------------------------------------------------| -| #3 [(2019-10-04)](https://cpp20survey.connpass.com/event/147002/) | | +| #3 [(2019-10-04)](https://cpp20survey.connpass.com/event/147002/) | [ドキュメント](https://docs.google.com/document/d/163DDT73-ccWJY8khoX2wOS6tiYYsJ2mvPdkLlIZXywk/edit) | | #2 [(2019-05-17)](https://cpp20survey.connpass.com/event/126691/) | [ドキュメント](https://docs.google.com/document/d/1t80gHDimmcltJSOZjUocApuB5ylqTKnZzX5Rkq_HY4s/edit) | | #1 [(2019-04-02)](https://cpp20survey.connpass.com/event/124051/) | [ドキュメント](https://docs.google.com/document/d/1is2E5wOYo8oHrsI4OJNLNPmSRpeX-0GyGIrqIhfSB5U/edit) | From e773d6d00b2e6ba4c5a792a9ff41f68c70760edb Mon Sep 17 00:00:00 2001 From: yuji nunome Date: Wed, 9 Oct 2019 11:27:53 +0900 Subject: [PATCH 074/457] =?UTF-8?q?uchan=E3=81=95=E3=82=93=E3=81=AE?= =?UTF-8?q?=E8=B3=87=E6=96=99=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 5810a1a..4ce448e 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -23,7 +23,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | タイトル | 発表者 | ムービー | |-----------------------------|-----------------|------| | 勉強会と会場の説明 | Shintaro Okada | | -| 自作OS向けにlibc++をビルドする方法 | uchan | | +| [自作OS向けにlibc++をビルドする方法](https://www.slideshare.net/uchan_nos/building-libcxxformyos) | uchan | | | [C++ 製グラフィックライブラリ Skia の紹介](https://speakerdeck.com/pine/c-plus-plus-zhi-kurahuitukuraihurari-skia-falseshao-jie) | 水音ぴね | | | [Unreal C++ を始めてみた時の躓いたTips](https://www.slideshare.net/MakotoAdachi/cmix5) | akoto | | | [C++20ステータス](https://speakerdeck.com/faithandbrave/c-plus-plus-20-status) | Akira Takahashi | | From 7318706bc97cd1334d3f6ff936c1774e3556e9fd Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 9 Oct 2019 11:56:44 +0900 Subject: [PATCH 075/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 3783054..8c6c1f5 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -44,5 +44,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [オンラインコンパイラ 情報提供](https://github.com/cppmap/cppmap.docs/pull/18) - [@yohhoy](https://twitter.com/yohhoy) さん - [記事改善案 提供](https://twitter.com/yohhoy/status/1106950996192747521) +- [@yuji_n_dispair](https://twitter.com/yuji_n_dispair) さん + - [国内の勉強会 情報加筆](https://github.com/cppmap/cppmap.docs/pull/29) - [@yumetodo](https://twitter.com/yumetodo) さん - [テキストデータ ライブラリ 情報提供](https://github.com/cppmap/cppmap.docs/pull/17) \ No newline at end of file From 564a1bcdf3ea4f43d939ac32d59f4548f12364fb Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Wed, 9 Oct 2019 12:31:54 +0900 Subject: [PATCH 076/457] add cppmix 5 movies --- docs/learn/studymeetings.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 4ce448e..8a48d2b 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -23,11 +23,11 @@ description: 国内で開催されている C++ 関連の勉強会イベント | タイトル | 発表者 | ムービー | |-----------------------------|-----------------|------| | 勉強会と会場の説明 | Shintaro Okada | | -| [自作OS向けにlibc++をビルドする方法](https://www.slideshare.net/uchan_nos/building-libcxxformyos) | uchan | | -| [C++ 製グラフィックライブラリ Skia の紹介](https://speakerdeck.com/pine/c-plus-plus-zhi-kurahuitukuraihurari-skia-falseshao-jie) | 水音ぴね | | -| [Unreal C++ を始めてみた時の躓いたTips](https://www.slideshare.net/MakotoAdachi/cmix5) | akoto | | -| [C++20ステータス](https://speakerdeck.com/faithandbrave/c-plus-plus-20-status) | Akira Takahashi | | -| [20分くらいでわかった気分になれるC++20コルーチン](https://www.slideshare.net/yohhoy/20c20) | yohhoy | | +| [自作OS向けにlibc++をビルドする方法](https://www.slideshare.net/uchan_nos/building-libcxxformyos) | uchan | [:fa-play:](https://youtu.be/2G9My4DR_N0) | +| [C++ 製グラフィックライブラリ Skia の紹介](https://speakerdeck.com/pine/c-plus-plus-zhi-kurahuitukuraihurari-skia-falseshao-jie) | 水音ぴね | [:fa-play:](https://youtu.be/Wvx2xW3c8_w) | +| [Unreal C++ を始めてみた時の躓いたTips](https://www.slideshare.net/MakotoAdachi/cmix5) | akoto | [:fa-play:](https://youtu.be/Uy1qxTDlOA4) | +| [C++20ステータス](https://speakerdeck.com/faithandbrave/c-plus-plus-20-status) | Akira Takahashi | [:fa-play:](https://youtu.be/0xbmP9iJFRM) | +| [20分くらいでわかった気分になれるC++20コルーチン](https://www.slideshare.net/yohhoy/20c20) | yohhoy | [:fa-play:](https://youtu.be/XkZ260fgsq0) | | ディスカッション | (全員参加) | | From 18c9c9abbba17aad55f219b90f25fa2743d4b535 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 9 Oct 2019 12:42:07 +0900 Subject: [PATCH 077/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 8c6c1f5..cd76824 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -9,6 +9,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [@cpp_akira](https://twitter.com/cpp_akira) さん - [オンライン資料 情報提供](https://github.com/cppmap/cppmap.docs/pull/16) - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/24) + - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/30) - [@Fuyutsubaki](https://twitter.com/Fuyutsubaki) さん - [なぜかコンパイルできない ネタ提供](https://github.com/cppmap/cppmap.docs/issues/9#issuecomment-472076826) - [標準ライブラリ 記事作成](https://github.com/cppmap/cppmap.docs/pull/12) From 143a7d3332905d792e4eadbd6fb3b175bba0eebf Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 9 Oct 2019 15:01:52 +0900 Subject: [PATCH 078/457] cppmix 6 --- docs/learn/studymeetings.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 8a48d2b..6b3c08d 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -15,9 +15,15 @@ description: 国内で開催されている C++ 関連の勉強会イベント ### C++ MIX #6 [(2019-11-20)](https://cppmix.connpass.com/event/150527/) -| タイトル | 発表者 | ムービー | -|-----------------------------|-----------------|------| -| | | | +| タイトル | 発表者 | ムービー | +|------------------------------------------------------|-----------------|------| +| 勉強会と会場の説明 | Akira Takahashi | | +| std::format - C++20 時代の便利な文字列フォーマット | Ryo Suzuki | | +| インターンシップでC++を使用したゲーム開発を経験した話 | がっちょ | | +| 「みんな大好き!using ディレクティブ!」
    「みんな代替トークン使とる。使てへんのお前だけ。」 | かりや | | +| std::string_viewを使用した文字列解析 | Akira Takahashi | | +| 書籍『独習C++』の改訂について (仮) | Flast | | +| ディスカッション | (全員参加) | | ### C++ MIX #5 [(2019-09-04)](https://cppmix.connpass.com/event/141908/) | タイトル | 発表者 | ムービー | From 28ee4dd98c20b20c19e6259ffd2904c263dcc0a9 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 14 Oct 2019 11:47:25 +0900 Subject: [PATCH 079/457] fix --- docs/standardization/header.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index a1a942a..8a71daa 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -99,7 +99,7 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |[<valarray>](http://eel.is/c++draft/valarray.syn)|[en](https://en.cppreference.com/w/cpp/header/valarray) / [jp](https://ja.cppreference.com/w/cpp/header/valarray) / [cpprefjp](https://cpprefjp.github.io/reference/valarray.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/valarray) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/valarray) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/valarray)|| |[<variant>](http://eel.is/c++draft/variant.syn)|[en](https://en.cppreference.com/w/cpp/header/variant) / [jp](https://ja.cppreference.com/w/cpp/header/variant) / [cpprefjp](https://cpprefjp.github.io/reference/variant.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/variant) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/variant)|since C++17| |[<vector>](http://eel.is/c++draft/vector.syn)|[en](https://en.cppreference.com/w/cpp/header/vector) / [jp](https://ja.cppreference.com/w/cpp/header/vector) / [cpprefjp](https://cpprefjp.github.io/reference/vector.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/vector) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/vector) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/vector)|| -|[<version>](http://eel.is/c++draft/support.limits.general)|[en](https://en.cppreference.com/w/cpp/header/version) / [jp](https://ja.cppreference.com/w/cpp/header/version) / [cpprefjp](https://cpprefjp.github.io/reference/version.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/version) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/version) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/version)|| +|[<version>](http://eel.is/c++draft/support.limits.general)|[en](https://en.cppreference.com/w/cpp/header/version) / [jp](https://ja.cppreference.com/w/cpp/header/version) / [cpprefjp](https://cpprefjp.github.io/reference/version.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/version) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/version) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/version)|since C++20| ## 非推奨または削除 From 293bb573dd305237ceed1ce47ed1cda638500c41 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 14 Oct 2019 19:53:33 +0900 Subject: [PATCH 080/457] 2019 pre-Belfast --- docs/standardization/meetings.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 88a77e1..3a4b88f 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -33,8 +33,9 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - 2020-02-10 to 15 / プラハ, チェコ ## 2019 Belfast -#### 場所 +#### 場所 / 提案 - [2019-11-04 to 09](https://wg21.link/n4782) / ベルファスト, 北アイルランド, 英国 +- [JTC1/SC22/WG21 - Papers 2019 mailing2019-10 pre-Belfast](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/#mailing2019-10) ## 2019 Cologne #### 場所 / 提案 / 会議の結果 From 7e9d962be3ae4de90def08175fa828dbe6336cb5 Mon Sep 17 00:00:00 2001 From: onihusube <44743040+onihusube@users.noreply.github.com> Date: Tue, 15 Oct 2019 15:49:06 +0900 Subject: [PATCH 081/457] =?UTF-8?q?C++=20=E6=A8=99=E6=BA=96=E3=83=A9?= =?UTF-8?q?=E3=82=A4=E3=83=96=E3=83=A9=E3=83=AA=20:=20=E3=83=AA=E3=83=B3?= =?UTF-8?q?=E3=82=AF=E3=81=AE=E4=BF=AE=E6=AD=A3=E3=81=A8=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit のリンク変更の追随とのcpprefjpリンク追加 --- docs/standardization/header.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 8a71daa..70e6dc7 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -77,7 +77,7 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |[<semaphore>](http://eel.is/c++draft/semaphore.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| |[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| |[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| -|[<source_location>](http://eel.is/c++draft/source_location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<source_location>](http://eel.is/c++draft/source.location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| |[<span>](http://eel.is/c++draft/span.syn)|[en](https://en.cppreference.com/w/cpp/header/span) / [jp](https://ja.cppreference.com/w/cpp/header/span) / [cpprefjp](https://cpprefjp.github.io/reference/span.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/span) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/span) / MSVC|since C++20| |[<sstream>](http://eel.is/c++draft/sstream.syn)|[en](https://en.cppreference.com/w/cpp/header/sstream) / [jp](https://ja.cppreference.com/w/cpp/header/sstream) / [cpprefjp](https://cpprefjp.github.io/reference/sstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/sstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/sstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/sstream)|| |[<stack>](http://eel.is/c++draft/stack.syn)|[en](https://en.cppreference.com/w/cpp/header/stack) / [jp](https://ja.cppreference.com/w/cpp/header/stack) / [cpprefjp](https://cpprefjp.github.io/reference/stack.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stack) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/stack) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stack)|| @@ -108,7 +108,7 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |---|---|---|---| |[<ccomplex>](http://eel.is/c++draft/depr.complex.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ccomplex) / [jp](https://ja.cppreference.com/w/cpp/header/ccomplex) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ccomplex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ccomplex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ccomplex)|since C++11,
    deprecated in C++17,
    removed in C++20| |[<ciso646>](http://eel.is/c++draft/depr.iso646.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ciso646) / [jp](https://ja.cppreference.com/w/cpp/header/ciso646) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ciso646) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ciso646) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ciso646)|removed in C++20| -|[<codecvt>](http://eel.is/c++draft/depr.codecvt.syn)|[en](https://en.cppreference.com/w/cpp/header/codecvt) / [jp](https://ja.cppreference.com/w/cpp/header/codecvt) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/codecvt) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/codecvt) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/codecvt)|since C++11,
    deprecated in C++17| +|[<codecvt>](http://eel.is/c++draft/depr.codecvt.syn)|[en](https://en.cppreference.com/w/cpp/header/codecvt) / [jp](https://ja.cppreference.com/w/cpp/header/codecvt) / [cpprefjp](https://cpprefjp.github.io/reference/codecvt.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/codecvt) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/codecvt) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/codecvt)|since C++11,
    deprecated in C++17| |[<cstdalign>](http://eel.is/c++draft/depr.stdalign.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdalign) / [jp](https://ja.cppreference.com/w/cpp/header/cstdalign) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdalign) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdalign)|since C++11,
    deprecated in C++17,
    removed in C++20| |[<cstdbool>](http://eel.is/c++draft/depr.stdbool.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdbool) / [jp](https://ja.cppreference.com/w/cpp/header/cstdbool) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdbool) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdbool) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdbool)|since C++11,
    deprecated in C++17,
    removed in C++20| |[<ctgmath>](http://eel.is/c++draft/depr.tgmath.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ctgmath) / [jp](https://ja.cppreference.com/w/cpp/header/ctgmath) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctgmath) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ctgmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctgmath)|since C++11,
    deprecated in C++17,
    removed in C++20| From 0ff824933d715ba95f73ad71ceb295565734b066 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 15 Oct 2019 16:09:39 +0900 Subject: [PATCH 082/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index cd76824..26991c9 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -34,7 +34,8 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [C++20 の新機能 記事加筆](https://github.com/cppmap/cppmap.docs/pull/20) - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/21) - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/27) - - [標準ライブラリ 執筆協力](https://github.com/cppmap/cppmap.docs/issues/28) + - [標準ライブラリ 執筆協力](https://github.com/cppmap/cppmap.docs/issues/28) + - [標準ライブラリ 記事加筆](https://github.com/cppmap/cppmap.docs/issues/31) - [@tak0kada](https://twitter.com/tak0kada) さん - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/26) - [@tetzrom](https://twitter.com/tetzrom) さん From fc6f05c5545d0e0fb80b3fb2eacb9aab2b2c4304 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 15 Oct 2019 16:11:11 +0900 Subject: [PATCH 083/457] =?UTF-8?q?C++20=20=E3=83=AF=E3=83=BC=E3=82=AD?= =?UTF-8?q?=E3=83=B3=E3=82=B0=E3=83=89=E3=83=A9=E3=83=95=E3=83=88=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/working-drafts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index 5639fea..cd70ab4 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -4,4 +4,4 @@ description: C++ 規格のワーキングドラフトです - [C++11 最終ワーキングドラフト (N3337)](https://wg21.link/std11) | [HTML 版](https://timsong-cpp.github.io/cppwp/n3337/) - [C++14 最終ワーキングドラフト (N4140)](https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4140/) - [C++17 最終ワーキングドラフト (N4659)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4659/) -- [最新の C++20 ワーキングドラフト (N4830)](https://wg21.link/N4830) | [HTML 版](http://eel.is/c++draft/) +- [最新の C++20 ワーキングドラフト (N4835)](https://wg21.link/N4835) | [HTML 版](http://eel.is/c++draft/) From 889914a6b577a24ceea3111add92f6c4e81e96ac Mon Sep 17 00:00:00 2001 From: yoh Date: Fri, 25 Oct 2019 14:24:52 +0900 Subject: [PATCH 084/457] =?UTF-8?q?=E3=83=AA=E3=83=95=E3=83=AC=E3=82=AF?= =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=B3TS=E3=83=89=E3=83=A9=E3=83=95?= =?UTF-8?q?=E3=83=88=E6=96=87=E6=9B=B8=E3=81=AE=E6=9B=B4=E6=96=B0(N4818)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cppx.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cppx.md b/docs/standardization/cppx.md index 30e327a..0625d26 100644 --- a/docs/standardization/cppx.md +++ b/docs/standardization/cppx.md @@ -25,7 +25,7 @@ Motivation, Scope, and Basic Design (P1386)](https://wg21.link/p1386) ネットワーク機能を標準ライブラリに導入する提案です。[Boost.Asio](https://www.boost.org/doc/libs/release/doc/html/boost_asio.html) をベースに、ソケット通信、名前解決、インターネットプロトコル、タイマー、バッファ、非同期処理のための各種機能を実装する予定です。 ## リフレクション -- [Working Draft, C++ Extensions for Reflection (N4766)](https://wg21.link/n4766) +- [Working Draft, C++ Extensions for Reflection (N4818)](https://wg21.link/n4818) C++ にリフレクションを導入する提案です。C# のような動的なリフレクションではなく、コンパイル時に情報を取得する静的なリフレクションです。 From b62b447f129d4639a5fd9199457278c27c8867d4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 25 Oct 2019 21:11:04 +0900 Subject: [PATCH 085/457] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 26991c9..eb12f21 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -46,6 +46,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [オンラインコンパイラ 情報提供](https://github.com/cppmap/cppmap.docs/pull/18) - [@yohhoy](https://twitter.com/yohhoy) さん - [記事改善案 提供](https://twitter.com/yohhoy/status/1106950996192747521) + - [C++23 以降に向けた提案 情報提供](https://github.com/cppmap/cppmap.docs/pull/32) - [@yuji_n_dispair](https://twitter.com/yuji_n_dispair) さん - [国内の勉強会 情報加筆](https://github.com/cppmap/cppmap.docs/pull/29) - [@yumetodo](https://twitter.com/yumetodo) さん From bd049f6853728cf177b1e72eba2a7b97f3d4fbca Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 28 Oct 2019 17:29:24 +0900 Subject: [PATCH 086/457] add sponsors --- docs/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/index.md b/docs/index.md index 61d6c30..3f6c878 100644 --- a/docs/index.md +++ b/docs/index.md @@ -19,3 +19,8 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 CC0 本サイトの記事とサンプルコードはパブリックドメインです。 サードパーティーのコンテンツの著作権は、それぞれの所有者に帰属します。 + +## 💗 [スポンサー](https://github.com/sponsors/Reputeless) +- [sknjpn](https://twitter.com/sknjpn) +- アゲハマ +- chobby75 From 2ef31d9686e04323fdb5c6c11089317728499032 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 29 Oct 2019 19:26:15 +0900 Subject: [PATCH 087/457] Update studymeetings.md --- docs/learn/studymeetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 6b3c08d..2f8504e 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -130,6 +130,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #7 [(2019-10-29)](https://caddi.connpass.com/event/151541/) | type erasure の続きと expression templates | [:fa-play:](https://youtu.be/50J6pM5JlsU) | | #6 [(2019-10-09)](https://caddi.connpass.com/event/150414/) | 派生と継承、Type Erasure | | | #5 [(2019-09-25)](https://caddi.connpass.com/event/147690/) | 標準変換、オーバーロード解決、テンプレートの実引数推定 | [:fa-play:](https://youtu.be/bUyUDHPk4ik) | | #4 [(2019-09-11)](https://caddi.connpass.com/event/146851/) | C++ 標準規格の用語解説 | [:fa-play:](https://youtu.be/OYBLK4Lwudw) | From fe48a05ea663a2b76688c4d822433c2fea9d47b3 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 29 Oct 2019 19:29:05 +0900 Subject: [PATCH 088/457] Update studymeetings.md --- docs/learn/studymeetings.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 2f8504e..a7a4782 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -20,8 +20,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | 勉強会と会場の説明 | Akira Takahashi | | | std::format - C++20 時代の便利な文字列フォーマット | Ryo Suzuki | | | インターンシップでC++を使用したゲーム開発を経験した話 | がっちょ | | -| 「みんな大好き!using ディレクティブ!」
    「みんな代替トークン使とる。使てへんのお前だけ。」 | かりや | | -| std::string_viewを使用した文字列解析 | Akira Takahashi | | +| コンパイラのいじめ方 | kaityo256 | | | 書籍『独習C++』の改訂について (仮) | Flast | | | ディスカッション | (全員参加) | | From ad19d3c2f38146912018b0dcbda089ea777845a5 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 8 Nov 2019 19:50:30 +0900 Subject: [PATCH 089/457] Update studymeetings.md --- docs/learn/studymeetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index a7a4782..208b817 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -129,6 +129,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | | | #7 [(2019-10-29)](https://caddi.connpass.com/event/151541/) | type erasure の続きと expression templates | [:fa-play:](https://youtu.be/50J6pM5JlsU) | | #6 [(2019-10-09)](https://caddi.connpass.com/event/150414/) | 派生と継承、Type Erasure | | | #5 [(2019-09-25)](https://caddi.connpass.com/event/147690/) | 標準変換、オーバーロード解決、テンプレートの実引数推定 | [:fa-play:](https://youtu.be/bUyUDHPk4ik) | From 46296a3c4aaf203c7c95b50bf45194bac4e94d2b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 9 Nov 2019 18:32:50 +0900 Subject: [PATCH 090/457] P0966R1 --- docs/standardization/cpp20.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index c4be697..1f1ece1 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1051,4 +1051,8 @@ int main() std::cout << 2.0 * pi << '\n'; std::cout << pi_v << '\n'; } -``` \ No newline at end of file +``` + + +### `basic_string::reserve()` が capacity を縮小しないよう仕様変更 [(P0966R1)](https://wg21.link/P0966R1) +C++17 では、`std::basic_string::reserve(size_type)` に現在の `capacity()` よりも小さい値が渡された際、shrink-to-fit を実行することが許可されていたため、注意深く使わないとメモリの再配置を頻繁に引き起こし、実行時性能を低下させることがありました。また、デフォルト引数として `0` が定義されており、`s.reserve()` と `s.shrink_to_fit()` で機能が重複するという問題や、shrink-to-fit を実行せずデフォルト引数も無い `std::vector::reserve(size_type)` との一貫性がないという問題がありました。C++20 からの新しい仕様では `std::vector` 側に合わせ、`std::basic_string::reserve(size_type)` に現在の `capacity()` よりも小さい値が渡された際には何もしないことが保証され、デフォルト引数も廃止(互換性のために deprecated 指定の `std::basic_string:reserve(void)` オーバーロードが追加)となり、これらの問題が解決されます。 From c7f5f46ee24af5973e1ea0dc0b5ed08c63f5a4ba Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 9 Nov 2019 18:36:17 +0900 Subject: [PATCH 091/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 1f1ece1..693dfc5 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1054,5 +1054,5 @@ int main() ``` -### `basic_string::reserve()` が capacity を縮小しないよう仕様変更 [(P0966R1)](https://wg21.link/P0966R1) +### `basic_string::reserve()` が capacity を縮小しないように [(P0966R1)](https://wg21.link/P0966R1) C++17 では、`std::basic_string::reserve(size_type)` に現在の `capacity()` よりも小さい値が渡された際、shrink-to-fit を実行することが許可されていたため、注意深く使わないとメモリの再配置を頻繁に引き起こし、実行時性能を低下させることがありました。また、デフォルト引数として `0` が定義されており、`s.reserve()` と `s.shrink_to_fit()` で機能が重複するという問題や、shrink-to-fit を実行せずデフォルト引数も無い `std::vector::reserve(size_type)` との一貫性がないという問題がありました。C++20 からの新しい仕様では `std::vector` 側に合わせ、`std::basic_string::reserve(size_type)` に現在の `capacity()` よりも小さい値が渡された際には何もしないことが保証され、デフォルト引数も廃止(互換性のために deprecated 指定の `std::basic_string:reserve(void)` オーバーロードが追加)となり、これらの問題が解決されます。 From 31a78bc3b869cf9f890991b9de5517d4879977a9 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 9 Nov 2019 22:22:45 +0900 Subject: [PATCH 092/457] Update meetings.md --- docs/standardization/meetings.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 3a4b88f..18b0309 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -37,6 +37,9 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [2019-11-04 to 09](https://wg21.link/n4782) / ベルファスト, 北アイルランド, 英国 - [JTC1/SC22/WG21 - Papers 2019 mailing2019-10 pre-Belfast](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/#mailing2019-10) +#### 参加報告 +- [2019-11 Belfast ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/dtuov8/201911_belfast_iso_c_committee_trip_report/) by Bryce Lelbach and others + ## 2019 Cologne #### 場所 / 提案 / 会議の結果 - [2019-07-15 to 20](https://wg21.link/n4783) / ケルン, ドイツ From 603022c673ef87d75f15637abc27527ce191ac91 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 9 Nov 2019 22:27:18 +0900 Subject: [PATCH 093/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 18b0309..4e7f5d9 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -39,6 +39,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 参加報告 - [2019-11 Belfast ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/dtuov8/201911_belfast_iso_c_committee_trip_report/) by Bryce Lelbach and others +- [Trip report: Autumn ISO C++ standards meeting (Belfast)](https://herbsutter.com/2019/11/09/trip-report-autumn-iso-c-standards-meeting-belfast/) by Herb Sutter ## 2019 Cologne #### 場所 / 提案 / 会議の結果 From 5e6dbc8bc3aaf7fc0c115692247bc442df3ce80b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 10 Nov 2019 23:42:51 +0900 Subject: [PATCH 094/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 4e7f5d9..a42691d 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -40,6 +40,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 参加報告 - [2019-11 Belfast ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/dtuov8/201911_belfast_iso_c_committee_trip_report/) by Bryce Lelbach and others - [Trip report: Autumn ISO C++ standards meeting (Belfast)](https://herbsutter.com/2019/11/09/trip-report-autumn-iso-c-standards-meeting-belfast/) by Herb Sutter +- [WG21 in my own backyard: Belfast trip report](https://hatcat.com/?p=115) by Guy Davidson ## 2019 Cologne #### 場所 / 提案 / 会議の結果 From 9b2e3b0fda1c7249534d83bea39f350e35e9cade Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 12 Nov 2019 16:50:58 +0900 Subject: [PATCH 095/457] Update header.md --- docs/standardization/header.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 70e6dc7..31374f4 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -64,7 +64,7 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |[<memory_resource>](http://eel.is/c++draft/mem.res.syn)|[en](https://en.cppreference.com/w/cpp/header/memory_resource) / [jp](https://ja.cppreference.com/w/cpp/header/memory_resource) / [cpprefjp](https://cpprefjp.github.io/reference/memory_resource.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory_resource) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory_resource)|since C++17| |[<mutex>](http://eel.is/c++draft/mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/mutex) / [jp](https://ja.cppreference.com/w/cpp/header/mutex) / [cpprefjp](https://cpprefjp.github.io/reference/mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/mutex)|since C++11| |[<new>](http://eel.is/c++draft/new.syn)|[en](https://en.cppreference.com/w/cpp/header/new) / [jp](https://ja.cppreference.com/w/cpp/header/new) / [cpprefjp](https://cpprefjp.github.io/reference/new.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/new) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/new) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/new)|| -|[<numbers>](http://eel.is/c++draft/numbers.syn)|en / jp / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / libc++ / MSVC|since C++20| +|[<numbers>](http://eel.is/c++draft/numbers.syn)|en / jp / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numbers)|since C++20| |[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/numeric) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| |[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| |[<ostream>](http://eel.is/c++draft/ostream.syn)|[en](https://en.cppreference.com/w/cpp/header/ostream) / [jp](https://ja.cppreference.com/w/cpp/header/ostream) / [cpprefjp](https://cpprefjp.github.io/reference/ostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ostream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ostream)|| From 1564fc173c606e3ac98af13e40b369b4add95ed2 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 13 Nov 2019 10:25:24 +0900 Subject: [PATCH 096/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index a42691d..0fe5009 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -41,6 +41,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [2019-11 Belfast ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/dtuov8/201911_belfast_iso_c_committee_trip_report/) by Bryce Lelbach and others - [Trip report: Autumn ISO C++ standards meeting (Belfast)](https://herbsutter.com/2019/11/09/trip-report-autumn-iso-c-standards-meeting-belfast/) by Herb Sutter - [WG21 in my own backyard: Belfast trip report](https://hatcat.com/?p=115) by Guy Davidson +- [Trip Report: Freestanding Errors in Belfast](https://www.reddit.com/r/cpp/comments/dvh72f/trip_report_freestanding_errors_in_belfast/) by Ben Craig ## 2019 Cologne #### 場所 / 提案 / 会議の結果 From a0ff981a0f6a0f3ae6f872c24af3736e516a7d43 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 13 Nov 2019 11:09:30 +0900 Subject: [PATCH 097/457] Update index.md --- docs/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/index.md b/docs/index.md index 3f6c878..fdde96a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -21,6 +21,9 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 サードパーティーのコンテンツの著作権は、それぞれの所有者に帰属します。 ## 💗 [スポンサー](https://github.com/sponsors/Reputeless) + +「C++ の歩き方」の記事執筆・メンテナンスへ寄付してくださっている方々です。新規ご支援は [GitHub Sponsors ページ](https://github.com/sponsors/Reputeless) より。 + - [sknjpn](https://twitter.com/sknjpn) - アゲハマ - chobby75 From 56f9ad5b04d42ba76dfa2638da2777149310ef04 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 15 Nov 2019 12:00:39 +0900 Subject: [PATCH 098/457] P0458R2 --- docs/standardization/cpp20.md | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 693dfc5..e66c491 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1056,3 +1056,44 @@ int main() ### `basic_string::reserve()` が capacity を縮小しないように [(P0966R1)](https://wg21.link/P0966R1) C++17 では、`std::basic_string::reserve(size_type)` に現在の `capacity()` よりも小さい値が渡された際、shrink-to-fit を実行することが許可されていたため、注意深く使わないとメモリの再配置を頻繁に引き起こし、実行時性能を低下させることがありました。また、デフォルト引数として `0` が定義されており、`s.reserve()` と `s.shrink_to_fit()` で機能が重複するという問題や、shrink-to-fit を実行せずデフォルト引数も無い `std::vector::reserve(size_type)` との一貫性がないという問題がありました。C++20 からの新しい仕様では `std::vector` 側に合わせ、`std::basic_string::reserve(size_type)` に現在の `capacity()` よりも小さい値が渡された際には何もしないことが保証され、デフォルト引数も廃止(互換性のために deprecated 指定の `std::basic_string:reserve(void)` オーバーロードが追加)となり、これらの問題が解決されます。 + + +### 連想コンテナに `constains()` メンバ関数を追加 [(P0458R2)](https://wg21.link/P0458R2) +ある要素が連想コンテナに含まれているか調べるための C++17 までのイディオムは、直感的でなく初心者にとっても明快ではありませんでした。C++20 からは、要素の存在をチェックする `contains(key)` メンバ関数が `std::map`, `std::multimap`, `std::set`, `std::multiset`, `std::unordered_map`, `std::unordered_multimap`, `std::unordered_set`, `std::unordered_multiset` に追加されます。 + +```C++ tab="C++17" +#include +#include + +int main() +{ + const std::unordered_map table = + { + { 200, "OK" }, { 201, "Created" }, { 202, "Accepted" } + }; + + if (table.find(200) != table.end()) + { + std::cout << "key exists\n"; + } +} +``` + +```C++ tab="C++20" +#include +#include + +int main() +{ + const std::unordered_map table = + { + { 200, "OK" }, { 201, "Created" }, { 202, "Accepted" } + }; + + if (table.contains(200)) + { + std::cout << "key exists\n"; + } +} +``` + From fafe7a5bb851a0c0b16daeb99f8dc92fe732b28b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 19 Nov 2019 20:26:05 +0900 Subject: [PATCH 099/457] Update studymeetings.md --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 208b817..8324b0d 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -129,7 +129,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | | +| #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | [:fa-play:](https://youtu.be/Gu9Y5t3uCZA) | | #7 [(2019-10-29)](https://caddi.connpass.com/event/151541/) | type erasure の続きと expression templates | [:fa-play:](https://youtu.be/50J6pM5JlsU) | | #6 [(2019-10-09)](https://caddi.connpass.com/event/150414/) | 派生と継承、Type Erasure | | | #5 [(2019-09-25)](https://caddi.connpass.com/event/147690/) | 標準変換、オーバーロード解決、テンプレートの実引数推定 | [:fa-play:](https://youtu.be/bUyUDHPk4ik) | From 722ca20dc5a57b0d212911e4d9e94de5b2814cb0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 19 Nov 2019 20:31:02 +0900 Subject: [PATCH 100/457] Update meetings.md --- docs/standardization/meetings.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 0fe5009..3cbf35e 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -42,6 +42,8 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [Trip report: Autumn ISO C++ standards meeting (Belfast)](https://herbsutter.com/2019/11/09/trip-report-autumn-iso-c-standards-meeting-belfast/) by Herb Sutter - [WG21 in my own backyard: Belfast trip report](https://hatcat.com/?p=115) by Guy Davidson - [Trip Report: Freestanding Errors in Belfast](https://www.reddit.com/r/cpp/comments/dvh72f/trip_report_freestanding_errors_in_belfast/) by Ben Craig +- [Belfast Trip Report](https://cppcast.com/timur-doumler-belfast/) by Timur Doumler +- [Trip Report: C++ Standards Meeting in Belfast, November 2019](https://botondballo.wordpress.com/2019/11/15/trip-report-c-standards-meeting-in-belfast-november-2019/) by Botond Ballo ## 2019 Cologne #### 場所 / 提案 / 会議の結果 From 54a20d4f90aa8bfcd66938348765a83db68d3582 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 21 Nov 2019 13:28:06 +0900 Subject: [PATCH 101/457] Update index.md --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index fdde96a..ef869f3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -27,3 +27,4 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - [sknjpn](https://twitter.com/sknjpn) - アゲハマ - chobby75 +- papparappara From fa10d828db6975c11a25ebdb7e92438d824a1d74 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 1 Dec 2019 20:08:32 +0900 Subject: [PATCH 102/457] Update studymeetings.md --- docs/learn/studymeetings.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 8324b0d..f86b340 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -18,9 +18,9 @@ description: 国内で開催されている C++ 関連の勉強会イベント | タイトル | 発表者 | ムービー | |------------------------------------------------------|-----------------|------| | 勉強会と会場の説明 | Akira Takahashi | | -| std::format - C++20 時代の便利な文字列フォーマット | Ryo Suzuki | | +| [std::format - C++20 時代の便利な文字列フォーマット](https://www.dropbox.com/s/4gt1y5i3ogt9bvr/cppmix-C%2B%2B20Format.pdf?dl=0) | Ryo Suzuki | | | インターンシップでC++を使用したゲーム開発を経験した話 | がっちょ | | -| コンパイラのいじめ方 | kaityo256 | | +| [コンパイラのいじめ方](https://speakerdeck.com/kaityo256/how-to-fight-the-compiler) | kaityo256 | | | 書籍『独習C++』の改訂について (仮) | Flast | | | ディスカッション | (全員参加) | | @@ -129,6 +129,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #9 [(2019-12-03)](https://caddi.connpass.com/event/157462/) | コンセプト(時間があれば、Three-way Comparison operator) | | | #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | [:fa-play:](https://youtu.be/Gu9Y5t3uCZA) | | #7 [(2019-10-29)](https://caddi.connpass.com/event/151541/) | type erasure の続きと expression templates | [:fa-play:](https://youtu.be/50J6pM5JlsU) | | #6 [(2019-10-09)](https://caddi.connpass.com/event/150414/) | 派生と継承、Type Erasure | | From 9e1f50143f745e193e1e368918864bb9f3e19b80 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 2 Dec 2019 22:35:07 +0900 Subject: [PATCH 103/457] Update studymeetings.md --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index f86b340..95341fb 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -21,7 +21,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | [std::format - C++20 時代の便利な文字列フォーマット](https://www.dropbox.com/s/4gt1y5i3ogt9bvr/cppmix-C%2B%2B20Format.pdf?dl=0) | Ryo Suzuki | | | インターンシップでC++を使用したゲーム開発を経験した話 | がっちょ | | | [コンパイラのいじめ方](https://speakerdeck.com/kaityo256/how-to-fight-the-compiler) | kaityo256 | | -| 書籍『独習C++』の改訂について (仮) | Flast | | +| [書籍『独習C++』の改訂について (仮) ](https://docs.google.com/presentation/d/1dfJ537pkSwYYRai4mktlAoHwNnqmnOUqfmQiVjDJClY/edit) | Flast | | | ディスカッション | (全員参加) | | ### C++ MIX #5 [(2019-09-04)](https://cppmix.connpass.com/event/141908/) From 614ab0528b35efbb447e12297c7d87c4ae415e97 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 3 Dec 2019 20:02:26 +0900 Subject: [PATCH 104/457] Update studymeetings.md --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 95341fb..d37d295 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -129,7 +129,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #9 [(2019-12-03)](https://caddi.connpass.com/event/157462/) | コンセプト(時間があれば、Three-way Comparison operator) | | +| #9 [(2019-12-03)](https://caddi.connpass.com/event/157462/) | コンセプト(時間があれば、Three-way Comparison operator)[:fa-play:](https://youtu.be/nJcWfICJwyc) | | | #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | [:fa-play:](https://youtu.be/Gu9Y5t3uCZA) | | #7 [(2019-10-29)](https://caddi.connpass.com/event/151541/) | type erasure の続きと expression templates | [:fa-play:](https://youtu.be/50J6pM5JlsU) | | #6 [(2019-10-09)](https://caddi.connpass.com/event/150414/) | 派生と継承、Type Erasure | | From 519671a0d98733555d9776a1643f6841200ba026 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 3 Dec 2019 20:04:21 +0900 Subject: [PATCH 105/457] Update meetings.md --- docs/standardization/meetings.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 3cbf35e..e4e9e80 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -33,9 +33,10 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - 2020-02-10 to 15 / プラハ, チェコ ## 2019 Belfast -#### 場所 / 提案 +#### 場所 / 提案 / 会議の結果 - [2019-11-04 to 09](https://wg21.link/n4782) / ベルファスト, 北アイルランド, 英国 - [JTC1/SC22/WG21 - Papers 2019 mailing2019-10 pre-Belfast](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/#mailing2019-10) +- [JTC1/SC22/WG21 - Papers 2019 mailing2019-11 post-Belfast](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/#mailing2019-11) #### 参加報告 - [2019-11 Belfast ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/dtuov8/201911_belfast_iso_c_committee_trip_report/) by Bryce Lelbach and others From 9991b57843fffafe260e05a32e76acb74a2827bd Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 3 Dec 2019 20:12:10 +0900 Subject: [PATCH 106/457] =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/header.md | 2 +- mkdocs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 31374f4..1733a63 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -1,6 +1,6 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス、各種実装リスト -## C++ 標準ライブラリ +## 標準ライブラリ |ヘッダ|リファレンス|実装|バージョン| |---|---|---|---| diff --git a/mkdocs.yml b/mkdocs.yml index d983243..e4e0d45 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -55,7 +55,7 @@ nav: - 標準化会議: standardization/meetings.md - 処理系の対応状況: standardization/status.md - 規格ドラフト: standardization/working-drafts.md - - 標準ライブラリ: standardization/header.md + - C++ 標準ライブラリ: standardization/header.md - 記事: - コメントアウトのトリック: articles/comment-tricks.md - なぜかコンパイルできる: articles/it-compiles.md From 267081eddb12e77ff9d2ecb13f21d74f863687ae Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 3 Dec 2019 20:12:42 +0900 Subject: [PATCH 107/457] Update working-drafts.md --- docs/standardization/working-drafts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index cd70ab4..8c81709 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -4,4 +4,4 @@ description: C++ 規格のワーキングドラフトです - [C++11 最終ワーキングドラフト (N3337)](https://wg21.link/std11) | [HTML 版](https://timsong-cpp.github.io/cppwp/n3337/) - [C++14 最終ワーキングドラフト (N4140)](https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4140/) - [C++17 最終ワーキングドラフト (N4659)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4659/) -- [最新の C++20 ワーキングドラフト (N4835)](https://wg21.link/N4835) | [HTML 版](http://eel.is/c++draft/) +- [最新の C++20 ワーキングドラフト (N4842)](https://wg21.link/N4842) | [HTML 版](http://eel.is/c++draft/) From 4dc03c1113e6d18cbeaebebc7a6ee3007aacb638 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 3 Dec 2019 21:55:02 +0900 Subject: [PATCH 108/457] =?UTF-8?q?=E3=83=91=E3=82=BF=E3=83=BC=E3=83=B3?= =?UTF-8?q?=E3=83=9E=E3=83=83=E3=83=81=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/cppx.md | 197 +++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) diff --git a/docs/standardization/cppx.md b/docs/standardization/cppx.md index 0625d26..0ef7508 100644 --- a/docs/standardization/cppx.md +++ b/docs/standardization/cppx.md @@ -8,22 +8,26 @@ description: C++23 以降に向けて議論が進行中のおもな提案の紹 `` や `` など、すべての C++ 標準ライブラリヘッダをモジュールとして提供する提案です。言語機能としてのモジュールは C++20 に導入されましたが、標準ライブラリへの導入は議論が間に合わず、C++23 に先送りされました。標準ライブラリのモジュールへの移行に合わせて、[標準ライブラリを再編成する提案](https://wg21.link/p1453)も出されています。 + ## `operator[]` に複数の引数 - [Subscripts On Parade (P1277)](https://wg21.link/p1277) `m[i, j, k]` のように、`operator[]` の引数に複数の値を渡せるようにする提案です。多次元配列の要素に簡潔な式でアクセスできるようになります。この書き方は、C++17 規格ではコンマ演算子と解釈されて `m[k]` になってしまうため、まずは[現行の文法を deprecated にする提案](https://wg21.link/p1161)が提出されています。`std::span` の多次元版である [`std::mdspan` の提案](https://github.com/kokkos/array_ref)での活用も期待されます。 + ## 低レベル オーディオ API - [A Standard Audio API for C++: Motivation, Scope, and Basic Design (P1386)](https://wg21.link/p1386) 音声再生・録音を行う低レベル API `std::audio` を追加する提案です。以前頓挫した 2D Graphics API の標準化に比べれば、枯れている技術なので実現可能性は低くはなさそうです。波形データをオーディオデバイスとやり取りすることが主要な役割で、音声コーデックやフィルタなどの機能は提供しません。[実験的な実装を公開](https://github.com/stdcpp-audio/libstdaudio)して、設計に関するフィードバックを集めている段階です。 + ## ネットワーク - [Working Draft, C++ Extensions for Networking (N4734)](https://wg21.link/n4734) ネットワーク機能を標準ライブラリに導入する提案です。[Boost.Asio](https://www.boost.org/doc/libs/release/doc/html/boost_asio.html) をベースに、ソケット通信、名前解決、インターネットプロトコル、タイマー、バッファ、非同期処理のための各種機能を実装する予定です。 + ## リフレクション - [Working Draft, C++ Extensions for Reflection (N4818)](https://wg21.link/n4818) @@ -45,7 +49,200 @@ auto is_constexpr_function = is_constexpr::value; // true この機能を前提とした[メタクラスの提案](https://wg21.link/p0707)も議論が進んでいます。 + +## パターンマッチング +- [Pattern Matching (P1371)](https://wg21.link/p1371) + +`std::tuple` や `std::variant` で C++ における代数的データ型の表現が広がりましたが、それらを扱うための `std::apply` や `std::visit` は複雑で多くの制約があります。C++ 以外のプログラミング言語にならい、パターンマッチングを導入してこの問題を解決する提案です。この提案では、より宣言的で構造化された `switch` 文として、`inspect` 文/式という新しい文法の導入を提案しています。 + +```C++ +// inspect 文の文法 +inspect constexpr_opt (init-statement_opt condition) +{ + pattern guard_opt : statement + pattern guard_opt : statement + ... +} + +// inspect 式の文法 +inspect constexpr_opt (init-statement_opt condition) trailing-return-type_opt +{ + pattern guard_opt => expression + pattern guard_opt => expression + ... +} +``` + +### 整数のマッチング +```C++ tab="現在" +switch (code) +{ + case 200: std::cout << "OK\n"; break; + case 404: std::cout << "Not Found\n"; break; + default: std::cout << "don't care\n"; +} +``` + +```C++ tab="提案" +inspect (code) +{ + 200: std::cout << "OK\n"; + 404: std::cout << "Not Found\n"; + __: std::cout << "don't care\n"; // __ はワイルドカードパターン +} +``` + +### 文字列のマッチング +```C++ tab="現在" +if (s == "png") +{ + std::cout << "PNG Image\n"; +} +else if (s == "jpg") +{ + std::cout << "JPEG Image\n"; +} +else +{ + std::cout << "Not supported\n"; +} +``` + +```C++ tab="提案" +inspect (s) +{ + "png": std::cout << "PNG Image\n"; + "jpg": std::cout << "JPEG Image\n"; + __: std::cout << "Not supported\n"; +} +``` + +### Tuples のマッチング +```C++ tab="現在" +auto&& [x, y] = pos; +if (x == 0 && y == 0) +{ + std::cout << "on the origin\n"; +} +else if (y == 0) +{ + std::cout << "on X-axis\n"; +} +else if (x == 0) +{ + std::cout << "on Y-axis\n"; +} +else +{ + std::cout << x << ", " << y << '\n'; +} +``` + +```C++ tab="提案" +inspect (pos) +{ + [0, 0]: std::cout << "on the origin\n"; + [x, 0]: std::cout << "on the X-axis\n"; + [0, y]: std::cout << "on the Y-axis\n"; + [x, y]: std::cout << x << ", " << y << '\n'; +} +``` + +### Variants のマッチング +```C++ tab="現在" +struct Visitor +{ + void operator()(int i) const + { + std::cout << "int: " << i << '\n'; + } + + void operator()(float f) const + { + std::cout << "float: " << f << '\n'; + } +}; + +int main() +{ + std::variant v = 3.14f; + + std::visit(Visitor{}, v); +} +``` + +```C++ tab="提案" +int main() +{ + std::variant v = 3.14f; + + inspect (v) + { + i: std::cout << "int: " << i << '\n'; + f: std::cout << "float: " << f << '\n'; + } +} +``` + +### Polymorphic Types のマッチング +```C++ tab="現在" +struct Shape +{ + virtual ~Shape() = default; + virtual double area() const = 0; +}; + +struct Circle : Shape +{ + double radius; + double area() const override + { + return std::numbers::pi * radius * radius; + } +}; + +struct Rectangle : Shape +{ + double width, height; + double area() const override + { + return width * height; + } +}; +``` + +```C++ tab="提案" +struct Shape +{ + virtual ~Shape() = default; +}; + +struct Circle : Shape +{ + double radius; +}; + +struct Rectangle : Shape +{ + double width, height; +}; + +double Area(const Shape& shape) +{ + return inspect (shape) + { + [r] => std::numbers::pi* radius * radius, // inspect 式では => を使う + [w, h] => w * h + } +} +``` + + ## Executors +## コルーチンのライブラリサポート + + +## 契約プログラミング From 9eac7594f519f288c6406807b22dcd6ac0b29eac Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 3 Dec 2019 22:12:23 +0900 Subject: [PATCH 109/457] fix --- docs/standardization/cppx.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/cppx.md b/docs/standardization/cppx.md index 0ef7508..5a74bf8 100644 --- a/docs/standardization/cppx.md +++ b/docs/standardization/cppx.md @@ -67,8 +67,8 @@ inspect constexpr_opt (init-statement_opt condition) // inspect 式の文法 inspect constexpr_opt (init-statement_opt condition) trailing-return-type_opt { - pattern guard_opt => expression - pattern guard_opt => expression + pattern guard_opt => expression , + pattern guard_opt => expression , ... } ``` From 12348eab5c79d3cbda871d02efdca61b164574e1 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 3 Dec 2019 22:23:56 +0900 Subject: [PATCH 110/457] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index ef869f3..6a0e007 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,7 +22,7 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 ## 💗 [スポンサー](https://github.com/sponsors/Reputeless) -「C++ の歩き方」の記事執筆・メンテナンスへ寄付してくださっている方々です。新規ご支援は [GitHub Sponsors ページ](https://github.com/sponsors/Reputeless) より。 +[GitHub Sponsors ページ](https://github.com/sponsors/Reputeless) から「C++ の歩き方」にスポンサーとして貢献できます。 - [sknjpn](https://twitter.com/sknjpn) - アゲハマ From e9e5fa5ac9458f0a19aeed769c1390a4b056574b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 4 Dec 2019 08:10:40 +0900 Subject: [PATCH 111/457] fix --- docs/standardization/cppx.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cppx.md b/docs/standardization/cppx.md index 5a74bf8..ced4118 100644 --- a/docs/standardization/cppx.md +++ b/docs/standardization/cppx.md @@ -231,7 +231,7 @@ double Area(const Shape& shape) { return inspect (shape) { - [r] => std::numbers::pi* radius * radius, // inspect 式では => を使う + [r] => std::numbers::pi * r * r, // inspect 式では => を使う [w, h] => w * h } } From d9d6d5c0cece3763fb126af106f5be28497eacb6 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 11 Dec 2019 16:59:11 +0900 Subject: [PATCH 112/457] Update studymeetings.md --- docs/learn/studymeetings.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index d37d295..b249bdd 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -129,7 +129,8 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #9 [(2019-12-03)](https://caddi.connpass.com/event/157462/) | コンセプト(時間があれば、Three-way Comparison operator)[:fa-play:](https://youtu.be/nJcWfICJwyc) | | +| #10 [(2019-12-17)](https://caddi.connpass.com/event/158954/) | テンプレートの同一性、C++20の新機能解説 | | +| #9 [(2019-12-03)](https://caddi.connpass.com/event/157462/) | コンセプト(時間があれば、Three-way Comparison operator) | [:fa-play:](https://youtu.be/nJcWfICJwyc) | | | #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | [:fa-play:](https://youtu.be/Gu9Y5t3uCZA) | | #7 [(2019-10-29)](https://caddi.connpass.com/event/151541/) | type erasure の続きと expression templates | [:fa-play:](https://youtu.be/50J6pM5JlsU) | | #6 [(2019-10-09)](https://caddi.connpass.com/event/150414/) | 派生と継承、Type Erasure | | From f0ffda860bdb2520dd7b9ed74c034322719971d3 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 12 Dec 2019 11:25:43 +0900 Subject: [PATCH 113/457] Update boost.md --- docs/libraries/boost.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/libraries/boost.md b/docs/libraries/boost.md index 68abde7..1971b74 100644 --- a/docs/libraries/boost.md +++ b/docs/libraries/boost.md @@ -4,6 +4,7 @@ description: Boost C++ Libraries のバージョン履歴 | バージョン / リリースノート | リリース日 | 新しく追加されたライブラリ | |------------------------------------------------------------------------------------------------------------------------------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [1.72.0](https://www.boost.org/users/history/version_1_72_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_72_0.html) | 2019-12-11 | | | [1.71.0](https://www.boost.org/users/history/version_1_71_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_71_0.html) | 2019-08-19 | [Variant2](https://www.boost.org/libs/variant2/) | | [1.70.0](https://www.boost.org/users/history/version_1_70_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_70_0.html) | 2019-04-12 | [Outcome](https://www.boost.org/libs/outcome/), [Histogram](https://www.boost.org/libs/histogram/) | | [1.69.0](https://www.boost.org/users/history/version_1_69_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_69_0.html) | 2018-12-12 | [Safe Numerics](https://www.boost.org/libs/safe_numerics/) | From f90a96e61eb406d23da508afab24fb4b7f2f3226 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 17 Dec 2019 22:24:03 +0900 Subject: [PATCH 114/457] Update studymeetings.md --- docs/learn/studymeetings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index b249bdd..7ff8e76 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -129,7 +129,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| -| #10 [(2019-12-17)](https://caddi.connpass.com/event/158954/) | テンプレートの同一性、C++20の新機能解説 | | +| #10 [(2019-12-17)](https://caddi.connpass.com/event/158954/) | テンプレートの同一性、C++20の新機能解説 | [:fa-play:](https://youtu.be/3kZwwzdPR8M) | | #9 [(2019-12-03)](https://caddi.connpass.com/event/157462/) | コンセプト(時間があれば、Three-way Comparison operator) | [:fa-play:](https://youtu.be/nJcWfICJwyc) | | | #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | [:fa-play:](https://youtu.be/Gu9Y5t3uCZA) | | #7 [(2019-10-29)](https://caddi.connpass.com/event/151541/) | type erasure の続きと expression templates | [:fa-play:](https://youtu.be/50J6pM5JlsU) | From b918a293b64a32e5a7818fb70286905d7b3a8366 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 20 Dec 2019 13:58:43 +0900 Subject: [PATCH 115/457] Update studymeetings.md --- docs/learn/studymeetings.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 7ff8e76..7bc8d4c 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -13,6 +13,9 @@ description: 国内で開催されている C++ 関連の勉強会イベント - [Youtube チャンネル](https://www.youtube.com/channel/UC3c011RjfXoU4Gj86V7sb_w) - Twitter ハッシュタグ [#cppmix](https://twitter.com/search?q=%23cppmix) +### C++ MIX #7 [(2020-01-29)](https://cppmix.connpass.com/event/160166/) +| タイトル | 発表者 | ムービー | +|------------------------------------------------------|-----------------|------| ### C++ MIX #6 [(2019-11-20)](https://cppmix.connpass.com/event/150527/) | タイトル | 発表者 | ムービー | From 6000f2c2a366f2a731369e95e7d86f7e208227e6 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 27 Dec 2019 23:53:50 +0900 Subject: [PATCH 116/457] =?UTF-8?q?permalink=20=E3=83=9C=E3=82=BF=E3=83=B3?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mkdocs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index e4e0d45..337b6f1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -42,6 +42,8 @@ markdown_extensions: - pymdownx.inlinehilite - pymdownx.magiclink - pymdownx.superfences + - toc: + permalink: true extra_css: - "https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" - cppmap_styles.css From f980bdc9c0e7edc47dbf61c061b1edea27e1a27b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 28 Dec 2019 14:49:52 +0900 Subject: [PATCH 117/457] P1094R2 --- docs/standardization/cpp20.md | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index e66c491..42e806b 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -519,6 +519,59 @@ int main() ``` +### ネストした名前空間定義で `inline namespace` を使えるように [(P1094R2)](http://wg21.link/p1094r2) + +C++17 でネストした名前空間定義が導入されましたが、その中では `inline namespace` を使うことができず、`inline namespace` が `namespace` 内にある次のようなケースで恩恵を受けられませんでした。C++20 からはネストした名前空間定義の中で `inline` を使えるようになります。 + +```C++ tab="C++17" +#include + +namespace mylib::v1::util +{ + constexpr int GetValue() { return 1; } +} + +namespace mylib +{ + inline namespace v2 + { + namespace util + { + constexpr int GetValue() { return 2; } + } + } +} + +int main() +{ + std::cout << mylib::v1::util::GetValue() << '\n'; + std::cout << mylib::v2::util::GetValue() << '\n'; + std::cout << mylib::util::GetValue() << '\n'; // v2 +} +``` + +```C++ tab="C++20" +#include + +namespace mylib::v1::util +{ + constexpr int GetValue() { return 1; } +} + +namespace mylib::inline v2::util +{ + constexpr int GetValue() { return 2; } +} + +int main() +{ + std::cout << mylib::v1::util::GetValue() << '\n'; + std::cout << mylib::v2::util::GetValue() << '\n'; + std::cout << mylib::util::GetValue() << '\n'; // v2 +} +``` + + ## 標準ライブラリ ### 文字列の先頭や末尾が、ある文字列と一致するか判定 [(P0457R2)](https://wg21.link/P0457R2) From b29bdaa1152b5eedf265be59e9f358f7cab3f009 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 30 Dec 2019 12:09:44 +0900 Subject: [PATCH 118/457] =?UTF-8?q?=E8=A6=8B=E5=87=BA=E3=81=97=E6=94=B9?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/books.md | 2 +- docs/learn/communities.md | 2 +- docs/learn/online-resources.md | 2 +- docs/learn/studymeetings.md | 2 +- docs/tools/onlinecompilers.md | 2 +- docs/tools/package-manager.md | 2 +- mkdocs.yml | 12 ++++++------ 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 77c1282..3621de3 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -1,6 +1,6 @@ description: モダン C++ の学習に役立つ書籍の紹介 -# 書籍 +# C++ 書籍 C++ の学習に役立つ書籍を紹介します。 diff --git a/docs/learn/communities.md b/docs/learn/communities.md index d0fe997..c5e5e13 100644 --- a/docs/learn/communities.md +++ b/docs/learn/communities.md @@ -1,6 +1,6 @@ description: C++ ユーザのためのコミュニティの紹介 -# コミュニティ +# C++ コミュニティ C++ ユーザのためのコミュニティです。 diff --git a/docs/learn/online-resources.md b/docs/learn/online-resources.md index c033fc8..96151c5 100644 --- a/docs/learn/online-resources.md +++ b/docs/learn/online-resources.md @@ -1,6 +1,6 @@ description: オンラインでアクセスできる C++ 資料の紹介 -# オンライン資料 +# C++ オンライン資料 オンラインでアクセスできる C++ リソースです。 diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 7bc8d4c..aec7cae 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -1,6 +1,6 @@ description: 国内で開催されている C++ 関連の勉強会イベントの紹介 -# 国内の勉強会 +# 国内の C++ 勉強会 国内で開催されている C++ 関連の勉強会イベントです。 diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index 6f2d102..ad1041e 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -1,6 +1,6 @@ description: C++ プログラムのコンパイル・実行ができる Web サイトの紹介 -# オンラインコンパイラ +# C++ オンラインコンパイラ ## 主要なオンラインコンパイラ diff --git a/docs/tools/package-manager.md b/docs/tools/package-manager.md index eeacd14..f039cb7 100644 --- a/docs/tools/package-manager.md +++ b/docs/tools/package-manager.md @@ -1,6 +1,6 @@ description: C++ パッケージマネージャの紹介 -# パッケージマネージャ +# C++ パッケージマネージャ ## パッケージマネージャの比較 diff --git a/mkdocs.yml b/mkdocs.yml index 337b6f1..6771e33 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -67,10 +67,10 @@ nav: - IEEE 754 演算のルール: articles/ieee754-arithmetic.md - C++ 関連の略語: articles/acronyms.md - 学習: - - 書籍: learn/books.md - - オンライン資料: learn/online-resources.md - - 国内の勉強会: learn/studymeetings.md - - コミュニティ: learn/communities.md + - C++ 書籍: learn/books.md + - C++ オンライン資料: learn/online-resources.md + - 国内の C++ 勉強会: learn/studymeetings.md + - C++ コミュニティ: learn/communities.md - ライブラリ: - Boost: libraries/boost.md - コンテナ: libraries/containers.md @@ -78,7 +78,7 @@ nav: - 並行・並列: libraries/multi-threading.md - テストフレームワーク: libraries/testing.md - ツール: - - オンラインコンパイラ: tools/onlinecompilers.md - - パッケージマネージャ: tools/package-manager.md + - C++ オンラインコンパイラ: tools/onlinecompilers.md + - C++ パッケージマネージャ: tools/package-manager.md - 貢献: - コントリビュータ: contribution/contributors.md From 59d7d84cfc49921862fad3f1177eed20d124df1c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 30 Dec 2019 15:46:38 +0900 Subject: [PATCH 119/457] =?UTF-8?q?C++=20=E3=82=B3=E3=83=B3=E3=83=91?= =?UTF-8?q?=E3=82=A4=E3=83=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tools/compilers.md | 31 +++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 32 insertions(+) create mode 100644 docs/tools/compilers.md diff --git a/docs/tools/compilers.md b/docs/tools/compilers.md new file mode 100644 index 0000000..677cc75 --- /dev/null +++ b/docs/tools/compilers.md @@ -0,0 +1,31 @@ +description: C++ プログラムのコンパイラの紹介 + +# C++ コンパイラ + +## GCC +- https://gcc.gnu.org/ + +## Clang +- https://clang.llvm.org/ + +## Microsoft Visual C++ (MSVC) +[Microsoft Visual Studio](https://visualstudio.microsoft.com/) の C++ コンパイラ + +## Apple Clang +[Xcode](https://developer.apple.com/jp/xcode/) の C++ コンパイラ + +## EDG eccp +- https://www.edg.com/c + +## Intel C++ Compiler +- https://software.intel.com/en-us/c-compilers + +## IBM XL C++ +- https://www.ibm.com/us-en/marketplace/ibm-c-and-c-plus-plus-compiler-family + +## Oracle Developer Studio C++ compiler +- https://www.oracle.com/technetwork/server-storage/developerstudio/overview/index.html + +## Embarcadero C++ Builder +- https://www.embarcadero.com/products/cbuilder + diff --git a/mkdocs.yml b/mkdocs.yml index 6771e33..b3ff34d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -78,6 +78,7 @@ nav: - 並行・並列: libraries/multi-threading.md - テストフレームワーク: libraries/testing.md - ツール: + - C++ コンパイラ: tools/compilers.md - C++ オンラインコンパイラ: tools/onlinecompilers.md - C++ パッケージマネージャ: tools/package-manager.md - 貢献: From 08db4350e7b1465cfe1d8b692f2c884910ff5ddc Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 31 Dec 2019 00:58:16 +0900 Subject: [PATCH 120/457] Update studymeetings.md --- docs/learn/studymeetings.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index aec7cae..e698ff5 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -14,8 +14,14 @@ description: 国内で開催されている C++ 関連の勉強会イベント - Twitter ハッシュタグ [#cppmix](https://twitter.com/search?q=%23cppmix) ### C++ MIX #7 [(2020-01-29)](https://cppmix.connpass.com/event/160166/) -| タイトル | 発表者 | ムービー | -|------------------------------------------------------|-----------------|------| +| タイトル | 発表者 | ムービー | +|------------------------------------------------------|-------------------|------| +| 勉強会と会場の説明 | Akira Takahashi | | +| CPythonを組み込む話 (仮) | Shintarou Okada | | +| 「みんな大好き!using ディレクティブ!」
    「みんな代替トークン使とる。使てへんのお前だけ。」 | Kariya Mitsuru | | +| 続・モジュール | Tetsuro Matsumura | | +| RustとC++を比べてみた(当社比) | いなむのみたま | | +| ディスカッション | (全員参加) | | ### C++ MIX #6 [(2019-11-20)](https://cppmix.connpass.com/event/150527/) | タイトル | 発表者 | ムービー | From 50c5ad9dc9c254218079a6867eb63d7002ef5fb4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 6 Jan 2020 00:01:32 +0900 Subject: [PATCH 121/457] update --- docs/index.md | 3 ++- docs/standardization/cpp20.md | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 6a0e007..0e5c630 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,9 +22,10 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 ## 💗 [スポンサー](https://github.com/sponsors/Reputeless) -[GitHub Sponsors ページ](https://github.com/sponsors/Reputeless) から「C++ の歩き方」にスポンサーとして貢献できます。 +[GitHub Sponsors ページ](https://github.com/sponsors/Reputeless) から「C++ の歩き方」のスポンサーにご登録ください。 - [sknjpn](https://twitter.com/sknjpn) - アゲハマ - chobby75 - papparappara +- (匿名 😀) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 42e806b..639907a 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1150,3 +1150,30 @@ int main() } ``` +### コンテナから要素を削除する std::erase() / std::erase_if() 関数 [(P1209R0)](https://wg21.link/p1209r0) +コンテナから特定の要素を削除するという処理は、コンテナの種類によって最適な書き方が異なります。`std::unordered_map` ではイテレータを使って先頭から要素を削除していき、`std::list` ではメンバ関数の `remove()` や `remove_if()` を使い、`std::vector` では `std::remove_if()` と `erase()` メンバ関数を組み合わせます。このようにコンテナの特性に応じてコードを書き分けるのは大変だったため、C++20 ではすべてのコンテナ向けに適切な実装を提供する、一貫して使える非メンバ関数 `std::erase()`, `std::erase_if()` が追加されます。 + +```C++ +#include +#include +#include +#include +#include + +int main() +{ + std::vector v = { 3, 14, 1, 5, 92 }; + std::list li = { 3, 14, 1, 5, 92 }; + std::unordered_map m = { + { "aa", 3 }, { "bb", 14 }, { "cc", 1 }, { "dd", 5 }, { "ee", 92 } }; + + std::erase(v, 3); + std::erase(li, 3); + std::erase_if(m, [](const auto& p) { return p.second == 3; }); + + std::erase_if(v, [](auto n) { return n < 10; }); + std::erase_if(li, [](auto n) { return n < 10; }); + std::erase_if(m, [](const auto& p) { return p.second < 10; }); +} +``` + From 62a911adfb97adc178b62caf07c1495ad087a079 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 6 Jan 2020 00:04:03 +0900 Subject: [PATCH 122/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 639907a..5e21a60 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1150,7 +1150,7 @@ int main() } ``` -### コンテナから要素を削除する std::erase() / std::erase_if() 関数 [(P1209R0)](https://wg21.link/p1209r0) +### コンテナから指定した要素を削除する std::erase() / std::erase_if() 関数 [(P1209R0)](https://wg21.link/p1209r0) コンテナから特定の要素を削除するという処理は、コンテナの種類によって最適な書き方が異なります。`std::unordered_map` ではイテレータを使って先頭から要素を削除していき、`std::list` ではメンバ関数の `remove()` や `remove_if()` を使い、`std::vector` では `std::remove_if()` と `erase()` メンバ関数を組み合わせます。このようにコンテナの特性に応じてコードを書き分けるのは大変だったため、C++20 ではすべてのコンテナ向けに適切な実装を提供する、一貫して使える非メンバ関数 `std::erase()`, `std::erase_if()` が追加されます。 ```C++ From c9cce4206daebf7eaacff31d454508bb587eb347 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 6 Jan 2020 00:05:42 +0900 Subject: [PATCH 123/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 5e21a60..4312052 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1150,7 +1150,7 @@ int main() } ``` -### コンテナから指定した要素を削除する std::erase() / std::erase_if() 関数 [(P1209R0)](https://wg21.link/p1209r0) +### コンテナから指定した要素を削除する操作に一貫して使える std::erase() / std::erase_if() 関数 [(P1209R0)](https://wg21.link/p1209r0) コンテナから特定の要素を削除するという処理は、コンテナの種類によって最適な書き方が異なります。`std::unordered_map` ではイテレータを使って先頭から要素を削除していき、`std::list` ではメンバ関数の `remove()` や `remove_if()` を使い、`std::vector` では `std::remove_if()` と `erase()` メンバ関数を組み合わせます。このようにコンテナの特性に応じてコードを書き分けるのは大変だったため、C++20 ではすべてのコンテナ向けに適切な実装を提供する、一貫して使える非メンバ関数 `std::erase()`, `std::erase_if()` が追加されます。 ```C++ From 8002ac0abdfc18ee28834b388c4e0dc024b81aa8 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 6 Jan 2020 00:11:38 +0900 Subject: [PATCH 124/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 4312052..786d03a 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1150,7 +1150,7 @@ int main() } ``` -### コンテナから指定した要素を削除する操作に一貫して使える std::erase() / std::erase_if() 関数 [(P1209R0)](https://wg21.link/p1209r0) +### コンテナから指定した要素を削除する操作に一貫して使える `std::erase()`, `std::erase_if()` 関数 [(P1209R0)](https://wg21.link/p1209r0) コンテナから特定の要素を削除するという処理は、コンテナの種類によって最適な書き方が異なります。`std::unordered_map` ではイテレータを使って先頭から要素を削除していき、`std::list` ではメンバ関数の `remove()` や `remove_if()` を使い、`std::vector` では `std::remove_if()` と `erase()` メンバ関数を組み合わせます。このようにコンテナの特性に応じてコードを書き分けるのは大変だったため、C++20 ではすべてのコンテナ向けに適切な実装を提供する、一貫して使える非メンバ関数 `std::erase()`, `std::erase_if()` が追加されます。 ```C++ From 2fb2d91ce0434dc3559d6bbcc9c69f9d4db34d46 Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Mon, 6 Jan 2020 12:45:20 +0900 Subject: [PATCH 125/457] add C++ MIX 6 movies --- docs/learn/studymeetings.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index e698ff5..86dc9e8 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -27,10 +27,10 @@ description: 国内で開催されている C++ 関連の勉強会イベント | タイトル | 発表者 | ムービー | |------------------------------------------------------|-----------------|------| | 勉強会と会場の説明 | Akira Takahashi | | -| [std::format - C++20 時代の便利な文字列フォーマット](https://www.dropbox.com/s/4gt1y5i3ogt9bvr/cppmix-C%2B%2B20Format.pdf?dl=0) | Ryo Suzuki | | -| インターンシップでC++を使用したゲーム開発を経験した話 | がっちょ | | -| [コンパイラのいじめ方](https://speakerdeck.com/kaityo256/how-to-fight-the-compiler) | kaityo256 | | -| [書籍『独習C++』の改訂について (仮) ](https://docs.google.com/presentation/d/1dfJ537pkSwYYRai4mktlAoHwNnqmnOUqfmQiVjDJClY/edit) | Flast | | +| [std::format - C++20 時代の便利な文字列フォーマット](https://www.dropbox.com/s/4gt1y5i3ogt9bvr/cppmix-C%2B%2B20Format.pdf?dl=0) | Ryo Suzuki | [:fa-play:](https://youtu.be/UGs10Unwams) | +| インターンシップでC++を使用したゲーム開発を経験した話 | がっちょ | [:fa-play:](https://youtu.be/V0ENpMzZ4OE) | +| [コンパイラのいじめ方](https://speakerdeck.com/kaityo256/how-to-fight-the-compiler) | kaityo256 | [:fa-play:](https://youtu.be/rC-YSvtRrHw) | +| [書籍『独習C++』の改訂について (仮) ](https://docs.google.com/presentation/d/1dfJ537pkSwYYRai4mktlAoHwNnqmnOUqfmQiVjDJClY/edit) | Flast | [:fa-play:](https://youtu.be/j30j7poj3J0) | | ディスカッション | (全員参加) | | ### C++ MIX #5 [(2019-09-04)](https://cppmix.connpass.com/event/141908/) From a362c4591a2f98b4f0fa34640eb93d070a330a6f Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 6 Jan 2020 12:54:10 +0900 Subject: [PATCH 126/457] Update contributors.md --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index eb12f21..5a554c2 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -10,6 +10,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [オンライン資料 情報提供](https://github.com/cppmap/cppmap.docs/pull/16) - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/24) - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/30) + - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/33) - [@Fuyutsubaki](https://twitter.com/Fuyutsubaki) さん - [なぜかコンパイルできない ネタ提供](https://github.com/cppmap/cppmap.docs/issues/9#issuecomment-472076826) - [標準ライブラリ 記事作成](https://github.com/cppmap/cppmap.docs/pull/12) From 239808c96b2e9e4d421183cfe9bec55e5ea352d4 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 8 Jan 2020 11:30:16 +0900 Subject: [PATCH 127/457] Update header.md --- docs/standardization/header.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 1733a63..2c32b2d 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -9,7 +9,7 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |[<array>](http://eel.is/c++draft/array.syn)|[en](https://en.cppreference.com/w/cpp/header/array) / [jp](https://ja.cppreference.com/w/cpp/header/array) / [cpprefjp](https://cpprefjp.github.io/reference/array.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/array) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/array) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/array)|since C++11| |[<atomic>](http://eel.is/c++draft/atomics.syn)|[en](https://en.cppreference.com/w/cpp/header/atomic) / [jp](https://ja.cppreference.com/w/cpp/header/atomic) / [cpprefjp](https://cpprefjp.github.io/reference/atomic.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/atomic) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/atomic) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/atomic)|since C++11| |[<barrier>](http://eel.is/c++draft/barrier.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| -|[<bit>](http://eel.is/c++draft/bit.syn)|[en](https://en.cppreference.com/w/cpp/header/bit) / [jp](https://ja.cppreference.com/w/cpp/header/bit) / [cpprefjp](https://cpprefjp.github.io/reference/bit.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bit) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/bit) / MSVC|since C++20| +|[<bit>](http://eel.is/c++draft/bit.syn)|[en](https://en.cppreference.com/w/cpp/header/bit) / [jp](https://ja.cppreference.com/w/cpp/header/bit) / [cpprefjp](https://cpprefjp.github.io/reference/bit.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bit) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/bit) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bit)|since C++20| |[<bitset>](http://eel.is/c++draft/bitset.syn)|[en](https://en.cppreference.com/w/cpp/header/bitset) / [jp](https://ja.cppreference.com/w/cpp/header/bitset) / [cpprefjp](https://cpprefjp.github.io/reference/bitset.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bitset) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/bitset) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bitset)|| |[<cassert>](http://eel.is/c++draft/cassert.syn)|[en](https://en.cppreference.com/w/cpp/header/cassert) / [jp](https://ja.cppreference.com/w/cpp/header/cassert) / [cpprefjp](https://cpprefjp.github.io/reference/cassert.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cassert) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cassert) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cassert)|| |[<cctype>](http://eel.is/c++draft/cctype.syn)|[en](https://en.cppreference.com/w/cpp/header/cctype) / [jp](https://ja.cppreference.com/w/cpp/header/cctype) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cctype) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cctype) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cctype)|| From b4c8e21076ea61d7b1826f8283e4b2b4dba17ad2 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 8 Jan 2020 11:52:49 +0900 Subject: [PATCH 128/457] Update header.md --- docs/standardization/header.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 2c32b2d..78abe7b 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -22,11 +22,11 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |[<climits>](http://eel.is/c++draft/climits.syn)|[en](https://en.cppreference.com/w/cpp/header/climits) / [jp](https://ja.cppreference.com/w/cpp/header/climits) / [cpprefjp](https://cpprefjp.github.io/reference/climits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/climits) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/climits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/climits)|| |[<clocale>](http://eel.is/c++draft/clocale.syn)|[en](https://en.cppreference.com/w/cpp/header/clocale) / [jp](https://ja.cppreference.com/w/cpp/header/clocale) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/clocale) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/clocale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/clocale)|| |[<cmath>](http://eel.is/c++draft/cmath.syn)|[en](https://en.cppreference.com/w/cpp/header/cmath) / [jp](https://ja.cppreference.com/w/cpp/header/cmath) / [cpprefjp](https://cpprefjp.github.io/reference/cmath.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cmath) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cmath)|| -|[<compare>](http://eel.is/c++draft/compare.syn)|[en](https://en.cppreference.com/w/cpp/header/compare) / [jp](https://ja.cppreference.com/w/cpp/header/compare) / cpprefjp|libstdc++ / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/compare) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/compare)|since C++20| +|[<compare>](http://eel.is/c++draft/compare.syn)|[en](https://en.cppreference.com/w/cpp/header/compare) / [jp](https://ja.cppreference.com/w/cpp/header/compare) / [cpprefjp](https://cpprefjp.github.io/reference/compare.html)|libstdc++ / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/compare) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/compare)|since C++20| |[<complex>](http://eel.is/c++draft/complex.syn)|[en](https://en.cppreference.com/w/cpp/header/complex) / [jp](https://ja.cppreference.com/w/cpp/header/complex) / [cpprefjp](https://cpprefjp.github.io/reference/complex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/complex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/complex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/complex)|| -|[<concepts>](http://eel.is/c++draft/concepts.syn)|[en](https://en.cppreference.com/w/cpp/header/concepts) / [jp](https://ja.cppreference.com/w/cpp/header/concepts) / [cpprefjp](https://cpprefjp.github.io/reference/concepts.html)|libstdc++ / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/concepts)|since C++20| +|[<concepts>](http://eel.is/c++draft/concepts.syn)|[en](https://en.cppreference.com/w/cpp/header/concepts) / [jp](https://ja.cppreference.com/w/cpp/header/concepts) / [cpprefjp](https://cpprefjp.github.io/reference/concepts.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/concepts) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/concepts)|since C++20| |[<condition_variable>](http://eel.is/c++draft/condition.variable.syn)|[en](https://en.cppreference.com/w/cpp/header/condition_variable) / [jp](https://ja.cppreference.com/w/cpp/header/condition_variable) / [cpprefjp](https://cpprefjp.github.io/reference/condition_variable.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/condition_variable) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/condition_variable) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/condition_variable)|since C++11| -|[<coroutine>](http://eel.is/c++draft/coroutine.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<coroutine>](http://eel.is/c++draft/coroutine.syn)|[en](https://en.cppreference.com/w/cpp/header/coroutine) / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| |[<csetjmp>](http://eel.is/c++draft/csetjmp.syn)|[en](https://en.cppreference.com/w/cpp/header/csetjmp) / [jp](https://ja.cppreference.com/w/cpp/header/csetjmp) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csetjmp) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/csetjmp) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csetjmp)|| |[<csignal>](http://eel.is/c++draft/csignal.syn)|[en](https://en.cppreference.com/w/cpp/header/csignal) / [jp](https://ja.cppreference.com/w/cpp/header/csignal) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csignal) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/csignal) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csignal)|| |[<cstdarg>](http://eel.is/c++draft/cstdarg.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdarg) / [jp](https://ja.cppreference.com/w/cpp/header/cstdarg) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdarg) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdarg) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdarg)|| @@ -43,7 +43,7 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |[<exception>](http://eel.is/c++draft/exception.syn)|[en](https://en.cppreference.com/w/cpp/header/exception) / [jp](https://ja.cppreference.com/w/cpp/header/exception) / [cpprefjp](https://cpprefjp.github.io/reference/exception.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/exception) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/exception) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/exception)|| |[<execution>](http://eel.is/c++draft/execution.syn)|[en](https://en.cppreference.com/w/cpp/header/execution) / [jp](https://ja.cppreference.com/w/cpp/header/execution) / [cpprefjp](https://cpprefjp.github.io/reference/execution.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/execution) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/execution) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/execution)|since C++17| |[<filesystem>](http://eel.is/c++draft/fs.filesystem.syn)|[en](https://en.cppreference.com/w/cpp/header/filesystem) / [jp](https://ja.cppreference.com/w/cpp/header/filesystem) / [cpprefjp](https://cpprefjp.github.io/reference/filesystem.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/filesystem) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/filesystem) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/filesystem)|since C++17| -|[<format>](http://eel.is/c++draft/format.syn)|[en](https://en.cppreference.com/w/cpp/header/format) / [jp](https://ja.cppreference.com/w/cpp/header/format) / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<format>](http://eel.is/c++draft/format.syn)|[en](https://en.cppreference.com/w/cpp/header/format) / [jp](https://ja.cppreference.com/w/cpp/header/format) / [cpprefjp](https://cpprefjp.github.io/reference/format.html)|libstdc++ / libc++ / MSVC|since C++20| |[<forward_list>](http://eel.is/c++draft/forward.list.syn)|[en](https://en.cppreference.com/w/cpp/header/forward_list) / [jp](https://ja.cppreference.com/w/cpp/header/forward_list) / [cpprefjp](https://cpprefjp.github.io/reference/forward_list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/forward_list) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/forward_list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/forward_list)|since C++11| |[<fstream>](http://eel.is/c++draft/fstream.syn)|[en](https://en.cppreference.com/w/cpp/header/fstream) / [jp](https://ja.cppreference.com/w/cpp/header/fstream) / [cpprefjp](https://cpprefjp.github.io/reference/fstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/fstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/fstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/fstream)|| |[<functional>](http://eel.is/c++draft/functional.syn)|[en](https://en.cppreference.com/w/cpp/header/functional) / [jp](https://ja.cppreference.com/w/cpp/header/functional) / [cpprefjp](https://cpprefjp.github.io/reference/functional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/functional) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/functional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/functional)|| @@ -64,20 +64,20 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス |[<memory_resource>](http://eel.is/c++draft/mem.res.syn)|[en](https://en.cppreference.com/w/cpp/header/memory_resource) / [jp](https://ja.cppreference.com/w/cpp/header/memory_resource) / [cpprefjp](https://cpprefjp.github.io/reference/memory_resource.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory_resource) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory_resource)|since C++17| |[<mutex>](http://eel.is/c++draft/mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/mutex) / [jp](https://ja.cppreference.com/w/cpp/header/mutex) / [cpprefjp](https://cpprefjp.github.io/reference/mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/mutex)|since C++11| |[<new>](http://eel.is/c++draft/new.syn)|[en](https://en.cppreference.com/w/cpp/header/new) / [jp](https://ja.cppreference.com/w/cpp/header/new) / [cpprefjp](https://cpprefjp.github.io/reference/new.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/new) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/new) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/new)|| -|[<numbers>](http://eel.is/c++draft/numbers.syn)|en / jp / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numbers)|since C++20| +|[<numbers>](http://eel.is/c++draft/numbers.syn)|[en](https://en.cppreference.com/w/cpp/header/numbers) / [jp](https://ja.cppreference.com/w/cpp/header/numbers) / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numbers)|since C++20| |[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/numeric) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| |[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| |[<ostream>](http://eel.is/c++draft/ostream.syn)|[en](https://en.cppreference.com/w/cpp/header/ostream) / [jp](https://ja.cppreference.com/w/cpp/header/ostream) / [cpprefjp](https://cpprefjp.github.io/reference/ostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ostream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ostream)|| |[<queue>](http://eel.is/c++draft/queue.syn)|[en](https://en.cppreference.com/w/cpp/header/queue) / [jp](https://ja.cppreference.com/w/cpp/header/queue) / [cpprefjp](https://cpprefjp.github.io/reference/queue.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/queue) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/queue) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/queue)|| |[<random>](http://eel.is/c++draft/rand.synopsis)|[en](https://en.cppreference.com/w/cpp/header/random) / [jp](https://ja.cppreference.com/w/cpp/header/random) / [cpprefjp](https://cpprefjp.github.io/reference/random.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/random) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/random) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/random)|since C++11| -|[<ranges>](http://eel.is/c++draft/ranges.syn)|[en](https://en.cppreference.com/w/cpp/header/ranges) / [jp](https://ja.cppreference.com/w/cpp/header/ranges) / cpprefjp|libstdc++ / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ranges)|since C++20| +|[<ranges>](http://eel.is/c++draft/ranges.syn)|[en](https://en.cppreference.com/w/cpp/header/ranges) / [jp](https://ja.cppreference.com/w/cpp/header/ranges) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ranges) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ranges)|since C++20| |[<ratio>](http://eel.is/c++draft/ratio.syn)|[en](https://en.cppreference.com/w/cpp/header/ratio) / [jp](https://ja.cppreference.com/w/cpp/header/ratio) / [cpprefjp](https://cpprefjp.github.io/reference/ratio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ratio) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ratio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ratio)|since C++11| |[<regex>](http://eel.is/c++draft/re.syn)|[en](https://en.cppreference.com/w/cpp/header/regex) / [jp](https://ja.cppreference.com/w/cpp/header/regex) / [cpprefjp](https://cpprefjp.github.io/reference/regex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/regex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/regex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/regex)|since C++11| |[<scoped_allocator>](http://eel.is/c++draft/allocator.adaptor.syn)|[en](https://en.cppreference.com/w/cpp/header/scoped_allocator) / [jp](https://ja.cppreference.com/w/cpp/header/scoped_allocator) / [cpprefjp](https://cpprefjp.github.io/reference/scoped_allocator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/scoped_allocator) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/scoped_allocator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/scoped_allocator)|since C++11| |[<semaphore>](http://eel.is/c++draft/semaphore.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| |[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| |[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| -|[<source_location>](http://eel.is/c++draft/source.location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<source_location>](http://eel.is/c++draft/source.location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / [cpprefjp](https://cpprefjp.github.io/reference/source_location.html)|libstdc++ / libc++ / MSVC|since C++20| |[<span>](http://eel.is/c++draft/span.syn)|[en](https://en.cppreference.com/w/cpp/header/span) / [jp](https://ja.cppreference.com/w/cpp/header/span) / [cpprefjp](https://cpprefjp.github.io/reference/span.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/span) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/span) / MSVC|since C++20| |[<sstream>](http://eel.is/c++draft/sstream.syn)|[en](https://en.cppreference.com/w/cpp/header/sstream) / [jp](https://ja.cppreference.com/w/cpp/header/sstream) / [cpprefjp](https://cpprefjp.github.io/reference/sstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/sstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/sstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/sstream)|| |[<stack>](http://eel.is/c++draft/stack.syn)|[en](https://en.cppreference.com/w/cpp/header/stack) / [jp](https://ja.cppreference.com/w/cpp/header/stack) / [cpprefjp](https://cpprefjp.github.io/reference/stack.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stack) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/stack) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stack)|| From 3fe021b40dfbe942657497c1288ad86a9dc3c19a Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 8 Jan 2020 18:49:38 +0900 Subject: [PATCH 129/457] Update cpp20.md --- docs/standardization/cpp20.md | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 786d03a..1f57ceb 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -572,6 +572,90 @@ int main() ``` +### 本来アクセス可能な private メンバに構造化束縛ではアクセスできなかった問題を修正 [(P0969R0)](https://wg21.link/P0969R0) +メンバ関数内で自身の `private` メンバにアクセスすることや、`friend` 指定された関数で該当クラスの `private` メンバ変数にアクセスすることは通常可能ですが、C++17 の構造化束縛はクラスの `public` メンバにしかバインドできないという規格文面の制約があり、次のようなケースで一貫性がありませんでした。この制約を課す合理的な理由は無かったため、C++17 向けの規格にさかのぼって仕様が修正され、アクセス可能であれば `private` メンバ変数をバインドできるようになります。C++20 および、この変更に対応した C++17 コンパイラで新仕様を利用できます。 + +```C++ +class Date +{ +private: + + int m_year, m_month, m_day; + +public: + + friend void Work(const Date& date); + + void f(const Date& other) const + { + // OK + int year = other.m_year; + int month = other.m_month; + int day = other.m_day; + + // これまではコンパイルエラー, C++20 以降 OK + auto [y, m, d] = other; + } +}; + +// friend 指定されている関数 +void Work(const Date& date) +{ + // OK + int year = date.m_year; + int month = date.m_month; + int day = date.m_day; + + // これまではコンパイルエラー, C++20 以降 OK + auto [y, m, d] = date; +} + +int main() +{ + +} +``` + +### ユーザ宣言されたコンストラクタを持つクラスの集成体初期化を禁止 [(P1008R1)](https://wg21.link/P1008R1) +C++17 までは集成体の要件が緩かったため、コンストラクタについては、デフォルトコンストラクタが `= delete` または `private` であっても、集成体初期化によって初期化できる抜け道がありました。これはメンバ変数が意図しない値で初期化されるといった問題を引き起こします。C++20 からは集成体の要件が厳しくなり、ユーザ宣言されたコンストラクタがあるクラスは集成体にはなりません。 + +```C++ +struct A +{ + A() = delete; +}; + +struct B +{ +private: + B() = default; +}; + +struct C +{ + int i = 0; + C() = default; +}; + +int main() +{ + A a1; // コンパイルエラー + A a2{}; // C++17 までは OK, C++20 からはコンパイルエラー + + B b1; // コンパイルエラー + B b2{}; // C++17 までは OK, C++20 からはコンパイルエラー + + C c1(123); //コンパイルエラー + C c2{ 123 }; // C++17 までは OK, C++20 からはコンパイルエラー +} +``` + + +### `throw()` による動的例外指定を削除 [(P0619R4)](https://wg21.link/P0619R4) +C++11 では、`noexcept` の追加に合わせ、`throw(typeid, ...)` や `throw()` による動的例外指定が非推奨化されました。C++17 では前者が削除されましたが、古いコードにおいて広く使われていた後者は、移行猶予のために `noexcept(true)` のエイリアスとして改められつつ保持されていました。C++20 では後者も削除されます。 + + + ## 標準ライブラリ ### 文字列の先頭や末尾が、ある文字列と一致するか判定 [(P0457R2)](https://wg21.link/P0457R2) From b03e70aa24657c42a92a8120af0921ae846c7b76 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 8 Jan 2020 18:52:32 +0900 Subject: [PATCH 130/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 1f57ceb..243e213 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -572,7 +572,7 @@ int main() ``` -### 本来アクセス可能な private メンバに構造化束縛ではアクセスできなかった問題を修正 [(P0969R0)](https://wg21.link/P0969R0) +### 本来アクセス可能な private メンバに構造化束縛ではアクセスできなかった仕様を修正 [(P0969R0)](https://wg21.link/P0969R0) メンバ関数内で自身の `private` メンバにアクセスすることや、`friend` 指定された関数で該当クラスの `private` メンバ変数にアクセスすることは通常可能ですが、C++17 の構造化束縛はクラスの `public` メンバにしかバインドできないという規格文面の制約があり、次のようなケースで一貫性がありませんでした。この制約を課す合理的な理由は無かったため、C++17 向けの規格にさかのぼって仕様が修正され、アクセス可能であれば `private` メンバ変数をバインドできるようになります。C++20 および、この変更に対応した C++17 コンパイラで新仕様を利用できます。 ```C++ From 882491eb3c956f77438f720fc443e71216de46db Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 10 Jan 2020 10:28:17 +0900 Subject: [PATCH 131/457] Update books.md --- docs/learn/books.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 3621de3..452769a 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -2,11 +2,12 @@ description: モダン C++ の学習に役立つ書籍の紹介 # C++ 書籍 -C++ の学習に役立つ書籍を紹介します。 +C++ の学習に役立つ書籍を紹介します。 +とくに初学者向けの入門書には :fa-graduation-cap: マークを付けています。 -## C++14 以降の書籍 +## C++14 以降を扱った書籍 | 書名 | 発行年 | C++ 規格 | 内容 | |------------------------------------------------------------------------|------|----------|------------------------------------------------------------------------------------------------| @@ -23,6 +24,25 @@ C++ の学習に役立つ書籍を紹介します。 | [江添亮の C++ 入門](https://amzn.to/2HTGUbt) | 2019 | C++17/20 | C++ のツールや文法、いくつかの標準ライブラリ機能の設計を学べる解説書。[オープンソース版](https://ezoeryou.github.io/cpp-intro/) | | [独習 C++ 新版](https://amzn.to/2ZWRrck) | 2019 | C++17 | :fa-graduation-cap: 初学者向け。「独習 C++ 第 4 版」を C++17 に対応させ解説を一新 | +### モダン C++er になるための、おすすめルート + +
    +
    ◆ プログラミング未経験 / 小中高生 / not 情報系
    +
    冒険基礎教独習
    +
    ◆ 情報系の専門 / 高専 / 大学生
    +
    基礎教 + 絵本独習
    +
    ◆ C 言語はできる
    +
    絵本基礎教 or 独習
    +
    ◆ 大昔に C++ 学習
    +
    江添入門
    +
    ◆ 短時間で
    +
    基礎教
    +
    ◆ 辞書
    +
    ポケリ
    +
    + +出典: https://twitter.com/Reputeless/status/1215220229539692545 を改変 + ## 洋書 | 書名 | 発行年 | C++ 規格 | 内容 | @@ -30,6 +50,7 @@ C++ の学習に役立つ書籍を紹介します。 | [C++ Templates: The Complete Guide (2nd Edition)](https://amzn.to/2TnVa4h) | 2017 | C++17/20 | C++17 のテンプレートの文法や様々なテクニックを解説。C++20 で導入されるコンセプトの紹介も。 [目次](https://www.oreilly.com/library/view/c-templates-the/9780134778808/) | | [Mastering the C++17 STL](https://amzn.to/2tYz4X1) | 2017 | C++17 | C++17 までの標準ライブラリの機能や使い方を紹介。[目次](https://www.packtpub.com/application-development/mastering-c17-stl) | | [C++ Concurrency in Action, Second Edition](https://amzn.to/2J2y26G) | 2019 | C++17 | C++17 における並行処理を詳細に解説。ロックフリーデータ構造の設計なども取り上げる。[試し読み](https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition) | +| [A Tour of C++ Second Edition](https://amzn.to/307PviS) | 2018 | C++17/20 | Bjarne Stroustrup による中級者向けの C++ 解説書。C++20 の一部の機能も紹介 | | [C++17 in Detail](https://amzn.to/308p8fO) | 2019 | C++17 | C++17 の主要な新機能・変更点のほか、Boost から標準ライブラリへの移行を解説。[目次](https://leanpub.com/cpp17indetail) | | [C++17 - The Complete Guide](http://www.cppstd17.com/) | 2019 | C++17 | [目次](http://www.cppstd17.com/) | From 91585c6f3f55abb36a0a04eb11f9c66c25a636bd Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 10 Jan 2020 16:44:38 +0900 Subject: [PATCH 132/457] Update books.md --- docs/learn/books.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 452769a..87ffc5d 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -49,8 +49,8 @@ C++ の学習に役立つ書籍を紹介します。 |----------------------------------------------------------------------------|------|----------|------------------------------------------------------------------------------------------------------------------------------------| | [C++ Templates: The Complete Guide (2nd Edition)](https://amzn.to/2TnVa4h) | 2017 | C++17/20 | C++17 のテンプレートの文法や様々なテクニックを解説。C++20 で導入されるコンセプトの紹介も。 [目次](https://www.oreilly.com/library/view/c-templates-the/9780134778808/) | | [Mastering the C++17 STL](https://amzn.to/2tYz4X1) | 2017 | C++17 | C++17 までの標準ライブラリの機能や使い方を紹介。[目次](https://www.packtpub.com/application-development/mastering-c17-stl) | -| [C++ Concurrency in Action, Second Edition](https://amzn.to/2J2y26G) | 2019 | C++17 | C++17 における並行処理を詳細に解説。ロックフリーデータ構造の設計なども取り上げる。[試し読み](https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition) | | [A Tour of C++ Second Edition](https://amzn.to/307PviS) | 2018 | C++17/20 | Bjarne Stroustrup による中級者向けの C++ 解説書。C++20 の一部の機能も紹介 | +| [C++ Concurrency in Action, Second Edition](https://amzn.to/2J2y26G) | 2019 | C++17 | C++17 における並行処理を詳細に解説。ロックフリーデータ構造の設計なども取り上げる。[試し読み](https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition) | | [C++17 in Detail](https://amzn.to/308p8fO) | 2019 | C++17 | C++17 の主要な新機能・変更点のほか、Boost から標準ライブラリへの移行を解説。[目次](https://leanpub.com/cpp17indetail) | | [C++17 - The Complete Guide](http://www.cppstd17.com/) | 2019 | C++17 | [目次](http://www.cppstd17.com/) | From 04ad41003633c0a93bcec7af16364a4759f9b435 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 11 Jan 2020 19:29:20 +0900 Subject: [PATCH 133/457] P0476R2 --- docs/standardization/cpp20.md | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 243e213..2ac3dbc 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1261,3 +1261,61 @@ int main() } ``` + +### バイト列の再解釈キャストを補助する `std::bit_cast()` 関数 [(P0476R2)](https://wg21.link/P0476R2) +ある型のオブジェクトのバイト列を、別の型のオブジェクトと解釈して使うこと (type punning) は C++ では禁止されています (strict aliasing rule). `float` 型の値のバイト列を `std::uint32_t` 型として扱うときの間違った方法として、次のサンプルのように `reinterpret_cast` や `union` を用いる例があります。これは直感的に見え、実際ほとんどのコンパイラで期待通り動作しますが、規格上は未定義動作となる不正なコードです。正しくは `std::memcpy()` を使います。 + +```C++ +#include +#include +#include + +union FloatUint32 +{ + float f; + std::uint32_t u; +}; + +int main() +{ + constexpr float f = 0.5f; + + // 未定義動作 + const std::uint32_t u1 = *reinterpret_cast(&f); + + // 未定義動作 + const std::uint32_t u2 = FloatUint32{ f }.u; + + // OK + std::uint32_t u3; + std::memcpy(&u3, &f, sizeof(f)); + + std::cout << u1 << '\n'; + std::cout << u2 << '\n'; + std::cout << u3 << '\n'; +} +``` + +しかし、`std::memcpy()` では型変換を `constexpr` にできず、また、デフォルトコンストラクト可能でない型に対応するには `std::aligned_storage` と組み合わせる必要があるなど、適切な実装は面倒でした。C++20 では、この実装をコンパイラサポートによる `constexpr` 対応も含めて実現する `std::bit_cast()` 関数が提供されます。 + +```C++ +template +constexpr To bit_cast(const From& from) noexcept; +``` + +変換先の型 `To` と変換元の型 `From` について、`sizeof(To) != sizeof(From)` の場合や、`std::is_trivially_copyable_v == false` または `std::is_trivially_copyable_v == false` の場合にはコンパイルエラーになるため、間違いを減らす効果もあります。 + +```C++ +#include +#include +#include + +int main() +{ + constexpr float f = 0.5f; + + constexpr std::uint32_t u = std::bit_cast(f); + + std::cout << u << '\n'; +} +``` \ No newline at end of file From 7d450adbcb73cd78c09845635346ad206ec83990 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 11 Jan 2020 20:01:17 +0900 Subject: [PATCH 134/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 2ac3dbc..1d7fcb3 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1263,7 +1263,7 @@ int main() ### バイト列の再解釈キャストを補助する `std::bit_cast()` 関数 [(P0476R2)](https://wg21.link/P0476R2) -ある型のオブジェクトのバイト列を、別の型のオブジェクトと解釈して使うこと (type punning) は C++ では禁止されています (strict aliasing rule). `float` 型の値のバイト列を `std::uint32_t` 型として扱うときの間違った方法として、次のサンプルのように `reinterpret_cast` や `union` を用いる例があります。これは直感的に見え、実際ほとんどのコンパイラで期待通り動作しますが、規格上は未定義動作となる不正なコードです。正しくは `std::memcpy()` を使います。 +ある型のオブジェクトが格納されているバイト列に対して、別の型のオブジェクトと解釈してアクセスすること (type punning) は C++ では禁止されています (strict aliasing rule). `float` 型の値のバイト列を `std::uint32_t` 型として扱うときの間違った方法として、次のサンプルのように `reinterpret_cast` や `union` を用いる例があります。これは直感的に見え、実際ほとんどのコンパイラで期待通り動作しますが、規格上は未定義動作となる不正なコードです。正しくは `std::memcpy()` を使います。 ```C++ #include From 4c5de6e0d9ff0ee36d0912d8c56d32168285da48 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 13 Jan 2020 12:10:34 +0900 Subject: [PATCH 135/457] Update header.md --- docs/standardization/header.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 78abe7b..86dd018 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -1,5 +1,16 @@ description: C++ 標準ライブラリヘッダの規格書、リファレンス、各種実装リスト +# C++ 標準ライブラリ + +C++ の規格で定められた標準ライブラリに含まれるヘッダの一覧です。 +リファレンス Web サイトは + +- **en:** cppreference.com, +- **jp:** cppreference.com (日本語訳) +- **cpprefjp**: cpprefjp + +に対応しています。 + ## 標準ライブラリ |ヘッダ|リファレンス|実装|バージョン| From 2f16478638732cef9b9c5f40c951cabd0a5f437e Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 13 Jan 2020 12:14:36 +0900 Subject: [PATCH 136/457] Update books.md --- docs/learn/books.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 87ffc5d..8895139 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -2,8 +2,8 @@ description: モダン C++ の学習に役立つ書籍の紹介 # C++ 書籍 -C++ の学習に役立つ書籍を紹介します。 -とくに初学者向けの入門書には :fa-graduation-cap: マークを付けています。 +C++ の学習に役立つ最新の最新の書籍を紹介します。 +初学者向けの入門書には :fa-graduation-cap: マークを付けています。 From c53e06a1bcbbb2b3ee2862ecd655e0c97654eb18 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 13 Jan 2020 12:14:56 +0900 Subject: [PATCH 137/457] Update books.md --- docs/learn/books.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 8895139..85663d6 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -2,7 +2,7 @@ description: モダン C++ の学習に役立つ書籍の紹介 # C++ 書籍 -C++ の学習に役立つ最新の最新の書籍を紹介します。 +C++ の学習に役立つ最新の書籍を紹介します。 初学者向けの入門書には :fa-graduation-cap: マークを付けています。 From e28d4493ace3d64e1147e279b90e9f199315346c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 13 Jan 2020 15:36:08 +0900 Subject: [PATCH 138/457] update --- docs/learn/books.md | 3 +++ docs/learn/images/books.jpg | Bin 0 -> 128452 bytes 2 files changed, 3 insertions(+) create mode 100644 docs/learn/images/books.jpg diff --git a/docs/learn/books.md b/docs/learn/books.md index 85663d6..0246e34 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -24,6 +24,9 @@ C++ の学習に役立つ最新の書籍を紹介します。 | [江添亮の C++ 入門](https://amzn.to/2HTGUbt) | 2019 | C++17/20 | C++ のツールや文法、いくつかの標準ライブラリ機能の設計を学べる解説書。[オープンソース版](https://ezoeryou.github.io/cpp-intro/) | | [独習 C++ 新版](https://amzn.to/2ZWRrck) | 2019 | C++17 | :fa-graduation-cap: 初学者向け。「独習 C++ 第 4 版」を C++17 に対応させ解説を一新 | +![](images/books.jpg) + + ### モダン C++er になるための、おすすめルート
    diff --git a/docs/learn/images/books.jpg b/docs/learn/images/books.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54a2916f0260667fa851f13a1d2cc135b52847f9 GIT binary patch literal 128452 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%0ARsYxKOx2*t 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 J0M59p|Jh)OLeKyJ literal 0 HcmV?d00001 From 26659c1584cee5edd32e4e6057c74febc19a1321 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 13 Jan 2020 23:48:15 +0900 Subject: [PATCH 139/457] Update communities.md --- docs/learn/communities.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/learn/communities.md b/docs/learn/communities.md index c5e5e13..a01d61a 100644 --- a/docs/learn/communities.md +++ b/docs/learn/communities.md @@ -11,12 +11,16 @@ C++ ユーザのためのコミュニティです。 1 万人以上が登録し、100 以上のチャンネルが存在する、C++ に関する世界最大の Slack ワークスペースです。上記ページにメールアドレスを入力すると招待メールが届きます。 +### reddit (r/cpp) +[:fa-reddit: https://www.reddit.com/r/cpp/](https://www.reddit.com/r/cpp/) + +C++ のニュース掲示板。 + ### C++JP Facebook グループ [:fa-facebook: https://www.facebook.com/groups/cppjp/](https://www.facebook.com/groups/cppjp/) 400 人以上が参加する、日本の C++ プログラマのための Facebook グループです。書籍やイベントの情報が投稿されています。 - ## Twitter ### C++ に関する日本語のツイートを検索する方法 From 1a111e07b48e8ed5628c56213ad437445d274a97 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 15 Jan 2020 00:10:34 +0900 Subject: [PATCH 140/457] P0616R0 --- docs/standardization/cpp20.md | 62 ++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 1d7fcb3..cfedab6 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1318,4 +1318,64 @@ int main() std::cout << u << '\n'; } -``` \ No newline at end of file +``` + + +### `` の関数の非効率な実装を改善 [(P0616R0)](https://wg21.link/P0616R0) +C++17 では、`std::accumulate()` は `acc = binary_op(acc, *i)` として実装されると規格に定められていいたため、次のようなケースで `std::accumulate()` の最中に `std::string` のアロケーションが大量に発生して非効率でした。 + +```C++ +#include +#include +#include +#include + +int main() +{ + std::vector words(100, "abc"); + + std::string s = "start"; + + std::string r = std::accumulate(words.begin(), words.end(), s); + + std::cout << r << '\n'; +} +``` +C++17 の `std::accumulate()` の中で行われること: +```C++ +acc = acc + *i; // operator+(const std::string&, const std::string&) +++i; +... // くり返し +``` + +C++20 では、`std::move()` を使う `acc = binary_op(std::move(acc), *i)` という実装に変更され、右辺値の演算に対する効率的な実装を提供する型 (`std::string` など) が、恩恵を受けられるようになります。 + +C++20 の `std::accumulate()` の中で行われること: +```C++ +acc = std::move(acc) + *i; // operator+(std::string&&, const std::string&) +++i; +... +``` +`operator+(std::string&& lhs, const std::string& rhs)` は基本的に `lhs.append(rhs)` です。次のようにあらかじめ十分なキャパシティを確保したバッファを `std::accumulate()` 内で使えるようにもなります。 + +```C++ +#include +#include +#include +#include + +int main() +{ + std::vector words(100, "abc"); + + std::string s = "start"; + + s.reserve(s.size() + (word.size() * words.front().size())); // C++17 では無意味 + + std::string r = std::accumulate(words.begin(), words.end(), std::move(s)); + + std::cout << r << '\n'; +} +``` + +`std::move()` を使うこの仕様変更は、同じ `` ヘッダの `std::inner_product()` や `std::partial_sum()`, `std::adjacent_difference()` にも適用されます。 From a719124cf0ffdc154b7310275217afce54940665 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 17 Jan 2020 22:50:21 +0900 Subject: [PATCH 141/457] P0556R3 --- docs/standardization/cpp20.md | 65 +++++++++++++++++++++++++++++++++++ docs/tools/compilers.md | 2 +- 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index cfedab6..fb368a3 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1379,3 +1379,68 @@ int main() ``` `std::move()` を使うこの仕様変更は、同じ `` ヘッダの `std::inner_product()` や `std::partial_sum()`, `std::adjacent_difference()` にも適用されます。 + + +### 2 の累乗数に関するユーティリティ関数を追加 [(P0556R3)](https://wg21.link/P0556R3), [(P1355R2)](https://wg21.link/P1355R2) +ある整数が 2 の累乗数であるかを調べたり、ある整数に近い 2 の累乗数を探したりする処理は、プログラミングでよく登場しますが、C++17 の標準ライブラリには実装されていませんでした。C++20 では次のような関数が追加されます。 + +```C++ +namespace std +{ + template + constexpr bool ispow2(T x) noexcept; + + template + constexpr T ceil2(T x); + + template + constexpr T floor2(T x) noexcept; + + template + constexpr T log2p1(T x) noexcept; +} +``` + +- 引数 `x` が 2 の累乗数であるかを判定する `std::ispow2(x)` +- `x` 以上で最小の 2 の累乗数を返す `std::ceil2(x)` +- `x` 以下で最大の 2 の累乗数 (ただし `x` が 0 の場合は 0) を返す `std::floor2(x)`) +- `(1 + log2(x))` の整数部 (ただし `x` が 0 の場合は 0) を返す `std::log2p1(x)` + - 「`x` を表現するために何ビット必要か」と同じ意味 + +いずれの関数も、型 `T` が符号なし整数型 (`unsigned char`, `unsigned short`, `unsigned int`, `unsigned long`, `unsigned long long`) の場合のみオーバーロード解決に参加します。なお、`std::ceil2(x)` について、結果が型 `T` で表現できない場合の動作は未定義です。 + +```C++ +#include +#include + +int main() +{ + for (unsigned i = 0; i <= 16; ++i) + { + std::cout << i << ": " + << std::ispow2(i) << ' ' + << std::ceil2(i) << ' ' + << std::floor2(i) << ' ' + << std::log2p1(i) << '\n'; + } +} +``` +``` +0: 0 1 0 0 +1: 1 1 1 1 +2: 1 2 2 2 +3: 0 4 2 2 +4: 1 4 4 3 +5: 0 8 4 3 +6: 0 8 4 3 +7: 0 8 4 3 +8: 1 8 8 4 +9: 0 16 8 4 +10: 0 16 8 4 +11: 0 16 8 4 +12: 0 16 8 4 +13: 0 16 8 4 +14: 0 16 8 4 +15: 0 16 8 4 +16: 1 16 16 5 +``` diff --git a/docs/tools/compilers.md b/docs/tools/compilers.md index 677cc75..7b331aa 100644 --- a/docs/tools/compilers.md +++ b/docs/tools/compilers.md @@ -1,4 +1,4 @@ -description: C++ プログラムのコンパイラの紹介 +description: C++ コンパイラの紹介 # C++ コンパイラ From 4ab870631fcc28afa5175f0603f46e7790431514 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 17 Jan 2020 23:53:52 +0900 Subject: [PATCH 142/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index fb368a3..a861046 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1403,7 +1403,7 @@ namespace std - 引数 `x` が 2 の累乗数であるかを判定する `std::ispow2(x)` - `x` 以上で最小の 2 の累乗数を返す `std::ceil2(x)` -- `x` 以下で最大の 2 の累乗数 (ただし `x` が 0 の場合は 0) を返す `std::floor2(x)`) +- `x` 以下で最大の 2 の累乗数 (ただし `x` が 0 の場合は 0) を返す `std::floor2(x)` - `(1 + log2(x))` の整数部 (ただし `x` が 0 の場合は 0) を返す `std::log2p1(x)` - 「`x` を表現するために何ビット必要か」と同じ意味 From 73afe0c865c70dcca2d999f0f68adcc190067288 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 18 Jan 2020 11:17:10 +0900 Subject: [PATCH 143/457] P0646R1 --- docs/standardization/cpp20.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index a861046..d7ca262 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -2,7 +2,7 @@ description: C++20 の新しい言語機能と標準ライブラリ機能の解 # C++20 の新機能 -C++20 の変更すべてをカバーするために、項目追加・執筆作業中です(完成度 約 25%) +C++20 の変更すべてをカバーするために、項目追加・執筆作業中です(完成度 約 30%) ## 言語機能 @@ -1444,3 +1444,8 @@ int main() 15: 0 16 8 4 16: 1 16 16 5 ``` + + +### `std::list`, `std::forward_list` の要素削除メンバ関数が削除された要素数を返すように [(P0646R1)](https://wg21.link/P0646R1) +`std::list` のメンバ関数 `remove()` で要素を削除した際、実際に削除された要素数を知るには、前後で `size()` の比較を行わなければなりませんでした。ただし、`std::forward_list` の場合は `size()` メンバ関数を持たないため、O(n) の操作である `std::distance()` を使う必要がありました。C++20 では、`std::list` および `std::forward_list` の `remove()`, `remove_if()`, `unique()` メンバ関数が、削除された要素数を戻り値として返すようになります。なお、呼び出し側で戻り値を使わない場合、主要コンパイラは最適化で処理を省略するため、この仕様変更が実行時性能に与える影響は無いとされています。 + From c3730d64aa64b0be7bcecf143260551f7b4c6fd1 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 18 Jan 2020 11:23:13 +0900 Subject: [PATCH 144/457] Update cpp20.md --- docs/standardization/cpp20.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index d7ca262..bc7b6d0 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1446,6 +1446,6 @@ int main() ``` -### `std::list`, `std::forward_list` の要素削除メンバ関数が削除された要素数を返すように [(P0646R1)](https://wg21.link/P0646R1) -`std::list` のメンバ関数 `remove()` で要素を削除した際、実際に削除された要素数を知るには、前後で `size()` の比較を行わなければなりませんでした。ただし、`std::forward_list` の場合は `size()` メンバ関数を持たないため、O(n) の操作である `std::distance()` を使う必要がありました。C++20 では、`std::list` および `std::forward_list` の `remove()`, `remove_if()`, `unique()` メンバ関数が、削除された要素数を戻り値として返すようになります。なお、呼び出し側で戻り値を使わない場合、主要コンパイラは最適化で処理を省略するため、この仕様変更が実行時性能に与える影響は無いとされています。 +### `std::list` と `std::forward_list` の要素削除メンバ関数が、削除した要素数を返すように [(P0646R1)](https://wg21.link/P0646R1) +`std::list` のメンバ関数 `remove()` で要素を削除した際、実際に削除された要素数を知るには、前後で `size()` の比較を行わなければなりませんでした。しかし、`std::forward_list` の場合は `size()` メンバ関数を持たないため、O(n) の操作である `std::distance()` を使う必要がありました。C++20 では、`std::list` および `std::forward_list` の `remove()`, `remove_if()`, `unique()` メンバ関数が、削除された要素数を戻り値として返すようになります。なお、呼び出し側で戻り値を使わない場合、主要コンパイラは最適化で処理を省略するため、この仕様変更が実行時性能に与える影響は無いとされています。 From 07c6201fc195291be61a703b54d67b7d6ff96db0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 18 Jan 2020 14:22:34 +0900 Subject: [PATCH 145/457] pre-Prague --- docs/standardization/meetings.md | 11 ++++++----- docs/standardization/working-drafts.md | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index e4e9e80..6318be2 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -20,17 +20,18 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 場所 - 2021-02-22 to 27 / コナ, ハワイ州, 米国 -## 2020 New York (予定) +## 2020 New York #### 場所 -- 2020-11 / ニューヨーク, ニューヨーク州, 米国 +- [2020-11-09 to 14](https://wg21.link/n4848) / ニューヨーク, ニューヨーク州, 米国 ## 2020 Varna #### 場所 -- 2020-06-01 to 06 / ヴァルナ, ブルガリア +- [2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア ## 2020 Prague -#### 場所 -- 2020-02-10 to 15 / プラハ, チェコ +#### 場所 / 提案 +- [2020-02-10 to 15](https://wg21.link/n4817) / プラハ, チェコ +- [JTC1/SC22/WG21 - Papers 2020 mailing2020-01 pre-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-01) ## 2019 Belfast #### 場所 / 提案 / 会議の結果 diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index 8c81709..79d6179 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -4,4 +4,4 @@ description: C++ 規格のワーキングドラフトです - [C++11 最終ワーキングドラフト (N3337)](https://wg21.link/std11) | [HTML 版](https://timsong-cpp.github.io/cppwp/n3337/) - [C++14 最終ワーキングドラフト (N4140)](https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4140/) - [C++17 最終ワーキングドラフト (N4659)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4659/) -- [最新の C++20 ワーキングドラフト (N4842)](https://wg21.link/N4842) | [HTML 版](http://eel.is/c++draft/) +- [最新の C++20 ワーキングドラフト (N4849)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4849.pdf) | [HTML 版](http://eel.is/c++draft/) From ff6a164954d081ab6307319aa06b8b8dbbccd32c Mon Sep 17 00:00:00 2001 From: onihusube Date: Fri, 24 Jan 2020 00:04:27 +0900 Subject: [PATCH 146/457] =?UTF-8?q?header=20:=20llvm-mirror=E3=81=8B?= =?UTF-8?q?=E3=82=89llvm-project=E3=81=B8URL=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/header.md | 178 ++++++++++++++++----------------- 1 file changed, 89 insertions(+), 89 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 86dd018..7fe63e3 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -15,112 +15,112 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |ヘッダ|リファレンス|実装|バージョン| |---|---|---|---| -|[<algorithm>](http://eel.is/c++draft/algorithm.syn)|[en](https://en.cppreference.com/w/cpp/header/algorithm) / [jp](https://ja.cppreference.com/w/cpp/header/algorithm) / [cpprefjp](https://cpprefjp.github.io/reference/algorithm.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/algorithm) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/algorithm) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/algorithm)|| -|[<any>](http://eel.is/c++draft/any.synop)|[en](https://en.cppreference.com/w/cpp/header/any) / [jp](https://ja.cppreference.com/w/cpp/header/any) / [cpprefjp](https://cpprefjp.github.io/reference/any.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/any) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/any) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/any)|since C++17| -|[<array>](http://eel.is/c++draft/array.syn)|[en](https://en.cppreference.com/w/cpp/header/array) / [jp](https://ja.cppreference.com/w/cpp/header/array) / [cpprefjp](https://cpprefjp.github.io/reference/array.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/array) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/array) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/array)|since C++11| -|[<atomic>](http://eel.is/c++draft/atomics.syn)|[en](https://en.cppreference.com/w/cpp/header/atomic) / [jp](https://ja.cppreference.com/w/cpp/header/atomic) / [cpprefjp](https://cpprefjp.github.io/reference/atomic.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/atomic) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/atomic) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/atomic)|since C++11| +|[<algorithm>](http://eel.is/c++draft/algorithm.syn)|[en](https://en.cppreference.com/w/cpp/header/algorithm) / [jp](https://ja.cppreference.com/w/cpp/header/algorithm) / [cpprefjp](https://cpprefjp.github.io/reference/algorithm.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/algorithm) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/algorithm) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/algorithm)|| +|[<any>](http://eel.is/c++draft/any.synop)|[en](https://en.cppreference.com/w/cpp/header/any) / [jp](https://ja.cppreference.com/w/cpp/header/any) / [cpprefjp](https://cpprefjp.github.io/reference/any.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/any) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/any) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/any)|since C++17| +|[<array>](http://eel.is/c++draft/array.syn)|[en](https://en.cppreference.com/w/cpp/header/array) / [jp](https://ja.cppreference.com/w/cpp/header/array) / [cpprefjp](https://cpprefjp.github.io/reference/array.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/array) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/array) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/array)|since C++11| +|[<atomic>](http://eel.is/c++draft/atomics.syn)|[en](https://en.cppreference.com/w/cpp/header/atomic) / [jp](https://ja.cppreference.com/w/cpp/header/atomic) / [cpprefjp](https://cpprefjp.github.io/reference/atomic.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/atomic) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/atomic) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/atomic)|since C++11| |[<barrier>](http://eel.is/c++draft/barrier.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| -|[<bit>](http://eel.is/c++draft/bit.syn)|[en](https://en.cppreference.com/w/cpp/header/bit) / [jp](https://ja.cppreference.com/w/cpp/header/bit) / [cpprefjp](https://cpprefjp.github.io/reference/bit.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bit) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/bit) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bit)|since C++20| -|[<bitset>](http://eel.is/c++draft/bitset.syn)|[en](https://en.cppreference.com/w/cpp/header/bitset) / [jp](https://ja.cppreference.com/w/cpp/header/bitset) / [cpprefjp](https://cpprefjp.github.io/reference/bitset.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bitset) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/bitset) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bitset)|| -|[<cassert>](http://eel.is/c++draft/cassert.syn)|[en](https://en.cppreference.com/w/cpp/header/cassert) / [jp](https://ja.cppreference.com/w/cpp/header/cassert) / [cpprefjp](https://cpprefjp.github.io/reference/cassert.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cassert) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cassert) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cassert)|| -|[<cctype>](http://eel.is/c++draft/cctype.syn)|[en](https://en.cppreference.com/w/cpp/header/cctype) / [jp](https://ja.cppreference.com/w/cpp/header/cctype) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cctype) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cctype) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cctype)|| -|[<cerrno>](http://eel.is/c++draft/cerrno.syn)|[en](https://en.cppreference.com/w/cpp/header/cerrno) / [jp](https://ja.cppreference.com/w/cpp/header/cerrno) / [cpprefjp](https://cpprefjp.github.io/reference/cerrno.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cerrno) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cerrno) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cerrno)|| -|[<cfenv>](http://eel.is/c++draft/cfenv.syn)|[en](https://en.cppreference.com/w/cpp/header/cfenv) / [jp](https://ja.cppreference.com/w/cpp/header/cfenv) / [cpprefjp](https://cpprefjp.github.io/reference/cfenv.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cfenv) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cfenv) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cfenv)|since C++11| -|[<cfloat>](http://eel.is/c++draft/cfloat.syn)|[en](https://en.cppreference.com/w/cpp/header/cfloat) / [jp](https://ja.cppreference.com/w/cpp/header/cfloat) / [cpprefjp](https://cpprefjp.github.io/reference/cfloat.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cfloat) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cfloat) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cfloat)|| -|[<charconv>](http://eel.is/c++draft/charconv.syn)|[en](https://en.cppreference.com/w/cpp/header/charconv) / [jp](https://ja.cppreference.com/w/cpp/header/charconv) / [cpprefjp](https://cpprefjp.github.io/reference/charconv.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/charconv) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/charconv) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/charconv)|since C++17| -|[<chrono>](http://eel.is/c++draft/time.syn)|[en](https://en.cppreference.com/w/cpp/header/chrono) / [jp](https://ja.cppreference.com/w/cpp/header/chrono) / [cpprefjp](https://cpprefjp.github.io/reference/chrono.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/chrono) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/chrono) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/chrono)|since C++11| -|[<cinttypes>](http://eel.is/c++draft/cinttypes.syn)|[en](https://en.cppreference.com/w/cpp/header/cinttypes) / [jp](https://ja.cppreference.com/w/cpp/header/cinttypes) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cinttypes) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cinttypes) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cinttypes)|since C++11| -|[<climits>](http://eel.is/c++draft/climits.syn)|[en](https://en.cppreference.com/w/cpp/header/climits) / [jp](https://ja.cppreference.com/w/cpp/header/climits) / [cpprefjp](https://cpprefjp.github.io/reference/climits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/climits) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/climits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/climits)|| -|[<clocale>](http://eel.is/c++draft/clocale.syn)|[en](https://en.cppreference.com/w/cpp/header/clocale) / [jp](https://ja.cppreference.com/w/cpp/header/clocale) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/clocale) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/clocale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/clocale)|| -|[<cmath>](http://eel.is/c++draft/cmath.syn)|[en](https://en.cppreference.com/w/cpp/header/cmath) / [jp](https://ja.cppreference.com/w/cpp/header/cmath) / [cpprefjp](https://cpprefjp.github.io/reference/cmath.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cmath) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cmath)|| -|[<compare>](http://eel.is/c++draft/compare.syn)|[en](https://en.cppreference.com/w/cpp/header/compare) / [jp](https://ja.cppreference.com/w/cpp/header/compare) / [cpprefjp](https://cpprefjp.github.io/reference/compare.html)|libstdc++ / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/compare) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/compare)|since C++20| -|[<complex>](http://eel.is/c++draft/complex.syn)|[en](https://en.cppreference.com/w/cpp/header/complex) / [jp](https://ja.cppreference.com/w/cpp/header/complex) / [cpprefjp](https://cpprefjp.github.io/reference/complex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/complex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/complex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/complex)|| +|[<bit>](http://eel.is/c++draft/bit.syn)|[en](https://en.cppreference.com/w/cpp/header/bit) / [jp](https://ja.cppreference.com/w/cpp/header/bit) / [cpprefjp](https://cpprefjp.github.io/reference/bit.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bit) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/bit) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bit)|since C++20| +|[<bitset>](http://eel.is/c++draft/bitset.syn)|[en](https://en.cppreference.com/w/cpp/header/bitset) / [jp](https://ja.cppreference.com/w/cpp/header/bitset) / [cpprefjp](https://cpprefjp.github.io/reference/bitset.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bitset) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/bitset) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bitset)|| +|[<cassert>](http://eel.is/c++draft/cassert.syn)|[en](https://en.cppreference.com/w/cpp/header/cassert) / [jp](https://ja.cppreference.com/w/cpp/header/cassert) / [cpprefjp](https://cpprefjp.github.io/reference/cassert.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cassert) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cassert) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cassert)|| +|[<cctype>](http://eel.is/c++draft/cctype.syn)|[en](https://en.cppreference.com/w/cpp/header/cctype) / [jp](https://ja.cppreference.com/w/cpp/header/cctype) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cctype) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cctype) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cctype)|| +|[<cerrno>](http://eel.is/c++draft/cerrno.syn)|[en](https://en.cppreference.com/w/cpp/header/cerrno) / [jp](https://ja.cppreference.com/w/cpp/header/cerrno) / [cpprefjp](https://cpprefjp.github.io/reference/cerrno.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cerrno) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cerrno) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cerrno)|| +|[<cfenv>](http://eel.is/c++draft/cfenv.syn)|[en](https://en.cppreference.com/w/cpp/header/cfenv) / [jp](https://ja.cppreference.com/w/cpp/header/cfenv) / [cpprefjp](https://cpprefjp.github.io/reference/cfenv.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cfenv) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cfenv) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cfenv)|since C++11| +|[<cfloat>](http://eel.is/c++draft/cfloat.syn)|[en](https://en.cppreference.com/w/cpp/header/cfloat) / [jp](https://ja.cppreference.com/w/cpp/header/cfloat) / [cpprefjp](https://cpprefjp.github.io/reference/cfloat.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cfloat) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cfloat) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cfloat)|| +|[<charconv>](http://eel.is/c++draft/charconv.syn)|[en](https://en.cppreference.com/w/cpp/header/charconv) / [jp](https://ja.cppreference.com/w/cpp/header/charconv) / [cpprefjp](https://cpprefjp.github.io/reference/charconv.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/charconv) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/charconv) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/charconv)|since C++17| +|[<chrono>](http://eel.is/c++draft/time.syn)|[en](https://en.cppreference.com/w/cpp/header/chrono) / [jp](https://ja.cppreference.com/w/cpp/header/chrono) / [cpprefjp](https://cpprefjp.github.io/reference/chrono.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/chrono) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/chrono) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/chrono)|since C++11| +|[<cinttypes>](http://eel.is/c++draft/cinttypes.syn)|[en](https://en.cppreference.com/w/cpp/header/cinttypes) / [jp](https://ja.cppreference.com/w/cpp/header/cinttypes) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cinttypes) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cinttypes) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cinttypes)|since C++11| +|[<climits>](http://eel.is/c++draft/climits.syn)|[en](https://en.cppreference.com/w/cpp/header/climits) / [jp](https://ja.cppreference.com/w/cpp/header/climits) / [cpprefjp](https://cpprefjp.github.io/reference/climits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/climits) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/climits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/climits)|| +|[<clocale>](http://eel.is/c++draft/clocale.syn)|[en](https://en.cppreference.com/w/cpp/header/clocale) / [jp](https://ja.cppreference.com/w/cpp/header/clocale) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/clocale) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/clocale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/clocale)|| +|[<cmath>](http://eel.is/c++draft/cmath.syn)|[en](https://en.cppreference.com/w/cpp/header/cmath) / [jp](https://ja.cppreference.com/w/cpp/header/cmath) / [cpprefjp](https://cpprefjp.github.io/reference/cmath.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cmath) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cmath)|| +|[<compare>](http://eel.is/c++draft/compare.syn)|[en](https://en.cppreference.com/w/cpp/header/compare) / [jp](https://ja.cppreference.com/w/cpp/header/compare) / [cpprefjp](https://cpprefjp.github.io/reference/compare.html)|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/compare) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/compare)|since C++20| +|[<complex>](http://eel.is/c++draft/complex.syn)|[en](https://en.cppreference.com/w/cpp/header/complex) / [jp](https://ja.cppreference.com/w/cpp/header/complex) / [cpprefjp](https://cpprefjp.github.io/reference/complex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/complex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/complex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/complex)|| |[<concepts>](http://eel.is/c++draft/concepts.syn)|[en](https://en.cppreference.com/w/cpp/header/concepts) / [jp](https://ja.cppreference.com/w/cpp/header/concepts) / [cpprefjp](https://cpprefjp.github.io/reference/concepts.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/concepts) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/concepts)|since C++20| -|[<condition_variable>](http://eel.is/c++draft/condition.variable.syn)|[en](https://en.cppreference.com/w/cpp/header/condition_variable) / [jp](https://ja.cppreference.com/w/cpp/header/condition_variable) / [cpprefjp](https://cpprefjp.github.io/reference/condition_variable.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/condition_variable) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/condition_variable) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/condition_variable)|since C++11| +|[<condition_variable>](http://eel.is/c++draft/condition.variable.syn)|[en](https://en.cppreference.com/w/cpp/header/condition_variable) / [jp](https://ja.cppreference.com/w/cpp/header/condition_variable) / [cpprefjp](https://cpprefjp.github.io/reference/condition_variable.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/condition_variable) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/condition_variable) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/condition_variable)|since C++11| |[<coroutine>](http://eel.is/c++draft/coroutine.syn)|[en](https://en.cppreference.com/w/cpp/header/coroutine) / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| -|[<csetjmp>](http://eel.is/c++draft/csetjmp.syn)|[en](https://en.cppreference.com/w/cpp/header/csetjmp) / [jp](https://ja.cppreference.com/w/cpp/header/csetjmp) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csetjmp) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/csetjmp) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csetjmp)|| -|[<csignal>](http://eel.is/c++draft/csignal.syn)|[en](https://en.cppreference.com/w/cpp/header/csignal) / [jp](https://ja.cppreference.com/w/cpp/header/csignal) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csignal) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/csignal) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csignal)|| -|[<cstdarg>](http://eel.is/c++draft/cstdarg.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdarg) / [jp](https://ja.cppreference.com/w/cpp/header/cstdarg) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdarg) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdarg) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdarg)|| -|[<cstddef>](http://eel.is/c++draft/cstddef.syn)|[en](https://en.cppreference.com/w/cpp/header/cstddef) / [jp](https://ja.cppreference.com/w/cpp/header/cstddef) / [cpprefjp](https://cpprefjp.github.io/reference/cstddef.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstddef) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstddef) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstddef)|| -|[<cstdint>](http://eel.is/c++draft/cstdint.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdint) / [jp](https://ja.cppreference.com/w/cpp/header/cstdint) / [cpprefjp](https://cpprefjp.github.io/reference/cstdint.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdint) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdint) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdint)|since C++11| -|[<cstdio>](http://eel.is/c++draft/cstdio.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdio) / [jp](https://ja.cppreference.com/w/cpp/header/cstdio) / [cpprefjp](https://cpprefjp.github.io/reference/cstdio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdio) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdio)|| -|[<cstdlib>](http://eel.is/c++draft/cstdlib.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdlib) / [jp](https://ja.cppreference.com/w/cpp/header/cstdlib) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdlib) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdlib) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdlib)|| -|[<cstring>](http://eel.is/c++draft/cstring.syn)|[en](https://en.cppreference.com/w/cpp/header/cstring) / [jp](https://ja.cppreference.com/w/cpp/header/cstring) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstring) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstring) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstring)|| -|[<ctime>](http://eel.is/c++draft/ctime.syn)|[en](https://en.cppreference.com/w/cpp/header/ctime) / [jp](https://ja.cppreference.com/w/cpp/header/ctime) / [cpprefjp](https://cpprefjp.github.io/reference/ctime.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctime) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ctime) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctime)|| +|[<csetjmp>](http://eel.is/c++draft/csetjmp.syn)|[en](https://en.cppreference.com/w/cpp/header/csetjmp) / [jp](https://ja.cppreference.com/w/cpp/header/csetjmp) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csetjmp) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/csetjmp) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csetjmp)|| +|[<csignal>](http://eel.is/c++draft/csignal.syn)|[en](https://en.cppreference.com/w/cpp/header/csignal) / [jp](https://ja.cppreference.com/w/cpp/header/csignal) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csignal) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/csignal) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csignal)|| +|[<cstdarg>](http://eel.is/c++draft/cstdarg.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdarg) / [jp](https://ja.cppreference.com/w/cpp/header/cstdarg) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdarg) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstdarg) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdarg)|| +|[<cstddef>](http://eel.is/c++draft/cstddef.syn)|[en](https://en.cppreference.com/w/cpp/header/cstddef) / [jp](https://ja.cppreference.com/w/cpp/header/cstddef) / [cpprefjp](https://cpprefjp.github.io/reference/cstddef.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstddef) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstddef) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstddef)|| +|[<cstdint>](http://eel.is/c++draft/cstdint.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdint) / [jp](https://ja.cppreference.com/w/cpp/header/cstdint) / [cpprefjp](https://cpprefjp.github.io/reference/cstdint.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdint) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstdint) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdint)|since C++11| +|[<cstdio>](http://eel.is/c++draft/cstdio.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdio) / [jp](https://ja.cppreference.com/w/cpp/header/cstdio) / [cpprefjp](https://cpprefjp.github.io/reference/cstdio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdio) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstdio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdio)|| +|[<cstdlib>](http://eel.is/c++draft/cstdlib.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdlib) / [jp](https://ja.cppreference.com/w/cpp/header/cstdlib) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdlib) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstdlib) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdlib)|| +|[<cstring>](http://eel.is/c++draft/cstring.syn)|[en](https://en.cppreference.com/w/cpp/header/cstring) / [jp](https://ja.cppreference.com/w/cpp/header/cstring) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstring) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstring) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstring)|| +|[<ctime>](http://eel.is/c++draft/ctime.syn)|[en](https://en.cppreference.com/w/cpp/header/ctime) / [jp](https://ja.cppreference.com/w/cpp/header/ctime) / [cpprefjp](https://cpprefjp.github.io/reference/ctime.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctime) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ctime) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctime)|| |[<cuchar>](http://eel.is/c++draft/cuchar.syn)|[en](https://en.cppreference.com/w/cpp/header/cuchar) / [jp](https://ja.cppreference.com/w/cpp/header/cuchar) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cuchar) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cuchar)|since C++11| -|[<cwchar>](http://eel.is/c++draft/cwchar.syn)|[en](https://en.cppreference.com/w/cpp/header/cwchar) / [jp](https://ja.cppreference.com/w/cpp/header/cwchar) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cwchar) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cwchar) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cwchar)|| -|[<cwctype>](http://eel.is/c++draft/cwctype.syn)|[en](https://en.cppreference.com/w/cpp/header/cwctype) / [jp](https://ja.cppreference.com/w/cpp/header/cwctype) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cwctype) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cwctype) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cwctype)|| -|[<deque>](http://eel.is/c++draft/deque.syn)|[en](https://en.cppreference.com/w/cpp/header/deque) / [jp](https://ja.cppreference.com/w/cpp/header/deque) / [cpprefjp](https://cpprefjp.github.io/reference/deque.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/deque) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/deque) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/deque)|| -|[<exception>](http://eel.is/c++draft/exception.syn)|[en](https://en.cppreference.com/w/cpp/header/exception) / [jp](https://ja.cppreference.com/w/cpp/header/exception) / [cpprefjp](https://cpprefjp.github.io/reference/exception.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/exception) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/exception) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/exception)|| -|[<execution>](http://eel.is/c++draft/execution.syn)|[en](https://en.cppreference.com/w/cpp/header/execution) / [jp](https://ja.cppreference.com/w/cpp/header/execution) / [cpprefjp](https://cpprefjp.github.io/reference/execution.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/execution) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/execution) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/execution)|since C++17| -|[<filesystem>](http://eel.is/c++draft/fs.filesystem.syn)|[en](https://en.cppreference.com/w/cpp/header/filesystem) / [jp](https://ja.cppreference.com/w/cpp/header/filesystem) / [cpprefjp](https://cpprefjp.github.io/reference/filesystem.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/filesystem) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/filesystem) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/filesystem)|since C++17| +|[<cwchar>](http://eel.is/c++draft/cwchar.syn)|[en](https://en.cppreference.com/w/cpp/header/cwchar) / [jp](https://ja.cppreference.com/w/cpp/header/cwchar) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cwchar) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cwchar) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cwchar)|| +|[<cwctype>](http://eel.is/c++draft/cwctype.syn)|[en](https://en.cppreference.com/w/cpp/header/cwctype) / [jp](https://ja.cppreference.com/w/cpp/header/cwctype) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cwctype) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cwctype) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cwctype)|| +|[<deque>](http://eel.is/c++draft/deque.syn)|[en](https://en.cppreference.com/w/cpp/header/deque) / [jp](https://ja.cppreference.com/w/cpp/header/deque) / [cpprefjp](https://cpprefjp.github.io/reference/deque.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/deque) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/deque) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/deque)|| +|[<exception>](http://eel.is/c++draft/exception.syn)|[en](https://en.cppreference.com/w/cpp/header/exception) / [jp](https://ja.cppreference.com/w/cpp/header/exception) / [cpprefjp](https://cpprefjp.github.io/reference/exception.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/exception) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/exception) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/exception)|| +|[<execution>](http://eel.is/c++draft/execution.syn)|[en](https://en.cppreference.com/w/cpp/header/execution) / [jp](https://ja.cppreference.com/w/cpp/header/execution) / [cpprefjp](https://cpprefjp.github.io/reference/execution.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/execution) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/execution) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/execution)|since C++17| +|[<filesystem>](http://eel.is/c++draft/fs.filesystem.syn)|[en](https://en.cppreference.com/w/cpp/header/filesystem) / [jp](https://ja.cppreference.com/w/cpp/header/filesystem) / [cpprefjp](https://cpprefjp.github.io/reference/filesystem.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/filesystem) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/filesystem) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/filesystem)|since C++17| |[<format>](http://eel.is/c++draft/format.syn)|[en](https://en.cppreference.com/w/cpp/header/format) / [jp](https://ja.cppreference.com/w/cpp/header/format) / [cpprefjp](https://cpprefjp.github.io/reference/format.html)|libstdc++ / libc++ / MSVC|since C++20| -|[<forward_list>](http://eel.is/c++draft/forward.list.syn)|[en](https://en.cppreference.com/w/cpp/header/forward_list) / [jp](https://ja.cppreference.com/w/cpp/header/forward_list) / [cpprefjp](https://cpprefjp.github.io/reference/forward_list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/forward_list) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/forward_list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/forward_list)|since C++11| -|[<fstream>](http://eel.is/c++draft/fstream.syn)|[en](https://en.cppreference.com/w/cpp/header/fstream) / [jp](https://ja.cppreference.com/w/cpp/header/fstream) / [cpprefjp](https://cpprefjp.github.io/reference/fstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/fstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/fstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/fstream)|| -|[<functional>](http://eel.is/c++draft/functional.syn)|[en](https://en.cppreference.com/w/cpp/header/functional) / [jp](https://ja.cppreference.com/w/cpp/header/functional) / [cpprefjp](https://cpprefjp.github.io/reference/functional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/functional) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/functional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/functional)|| -|[<future>](http://eel.is/c++draft/future.syn)|[en](https://en.cppreference.com/w/cpp/header/future) / [jp](https://ja.cppreference.com/w/cpp/header/future) / [cpprefjp](https://cpprefjp.github.io/reference/future.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/future) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/future) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/future)|since C++11| -|[<initializer_list>](http://eel.is/c++draft/initializer.list.syn)|[en](https://en.cppreference.com/w/cpp/header/initializer_list) / [jp](https://ja.cppreference.com/w/cpp/header/initializer_list) / [cpprefjp](https://cpprefjp.github.io/reference/initializer_list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/initializer_list) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/initializer_list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/initializer_list)|since C++11| -|[<iomanip>](http://eel.is/c++draft/iomanip.syn)|[en](https://en.cppreference.com/w/cpp/header/iomanip) / [jp](https://ja.cppreference.com/w/cpp/header/iomanip) / [cpprefjp](https://cpprefjp.github.io/reference/iomanip.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iomanip) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iomanip) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iomanip)|| -|[<ios>](http://eel.is/c++draft/ios.syn)|[en](https://en.cppreference.com/w/cpp/header/ios) / [jp](https://ja.cppreference.com/w/cpp/header/ios) / [cpprefjp](https://cpprefjp.github.io/reference/ios.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ios) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ios) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ios)|| -|[<iosfwd>](http://eel.is/c++draft/iosfwd.syn)|[en](https://en.cppreference.com/w/cpp/header/iosfwd) / [jp](https://ja.cppreference.com/w/cpp/header/iosfwd) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iosfwd) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iosfwd) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iosfwd)|| -|[<iostream>](http://eel.is/c++draft/iostream.syn)|[en](https://en.cppreference.com/w/cpp/header/iostream) / [jp](https://ja.cppreference.com/w/cpp/header/iostream) / [cpprefjp](https://cpprefjp.github.io/reference/iostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iostream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iostream)|| -|[<istream>](http://eel.is/c++draft/istream.syn)|[en](https://en.cppreference.com/w/cpp/header/istream) / [jp](https://ja.cppreference.com/w/cpp/header/istream) / [cpprefjp](https://cpprefjp.github.io/reference/istream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/istream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/istream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/istream)|| -|[<iterator>](http://eel.is/c++draft/iterator.synopsis)|[en](https://en.cppreference.com/w/cpp/header/iterator) / [jp](https://ja.cppreference.com/w/cpp/header/iterator) / [cpprefjp](https://cpprefjp.github.io/reference/iterator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iterator) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/iterator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iterator)|| +|[<forward_list>](http://eel.is/c++draft/forward.list.syn)|[en](https://en.cppreference.com/w/cpp/header/forward_list) / [jp](https://ja.cppreference.com/w/cpp/header/forward_list) / [cpprefjp](https://cpprefjp.github.io/reference/forward_list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/forward_list) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/forward_list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/forward_list)|since C++11| +|[<fstream>](http://eel.is/c++draft/fstream.syn)|[en](https://en.cppreference.com/w/cpp/header/fstream) / [jp](https://ja.cppreference.com/w/cpp/header/fstream) / [cpprefjp](https://cpprefjp.github.io/reference/fstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/fstream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/fstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/fstream)|| +|[<functional>](http://eel.is/c++draft/functional.syn)|[en](https://en.cppreference.com/w/cpp/header/functional) / [jp](https://ja.cppreference.com/w/cpp/header/functional) / [cpprefjp](https://cpprefjp.github.io/reference/functional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/functional) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/functional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/functional)|| +|[<future>](http://eel.is/c++draft/future.syn)|[en](https://en.cppreference.com/w/cpp/header/future) / [jp](https://ja.cppreference.com/w/cpp/header/future) / [cpprefjp](https://cpprefjp.github.io/reference/future.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/future) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/future) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/future)|since C++11| +|[<initializer_list>](http://eel.is/c++draft/initializer.list.syn)|[en](https://en.cppreference.com/w/cpp/header/initializer_list) / [jp](https://ja.cppreference.com/w/cpp/header/initializer_list) / [cpprefjp](https://cpprefjp.github.io/reference/initializer_list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/initializer_list) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/initializer_list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/initializer_list)|since C++11| +|[<iomanip>](http://eel.is/c++draft/iomanip.syn)|[en](https://en.cppreference.com/w/cpp/header/iomanip) / [jp](https://ja.cppreference.com/w/cpp/header/iomanip) / [cpprefjp](https://cpprefjp.github.io/reference/iomanip.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iomanip) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iomanip) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iomanip)|| +|[<ios>](http://eel.is/c++draft/ios.syn)|[en](https://en.cppreference.com/w/cpp/header/ios) / [jp](https://ja.cppreference.com/w/cpp/header/ios) / [cpprefjp](https://cpprefjp.github.io/reference/ios.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ios) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ios) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ios)|| +|[<iosfwd>](http://eel.is/c++draft/iosfwd.syn)|[en](https://en.cppreference.com/w/cpp/header/iosfwd) / [jp](https://ja.cppreference.com/w/cpp/header/iosfwd) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iosfwd) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iosfwd) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iosfwd)|| +|[<iostream>](http://eel.is/c++draft/iostream.syn)|[en](https://en.cppreference.com/w/cpp/header/iostream) / [jp](https://ja.cppreference.com/w/cpp/header/iostream) / [cpprefjp](https://cpprefjp.github.io/reference/iostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iostream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iostream)|| +|[<istream>](http://eel.is/c++draft/istream.syn)|[en](https://en.cppreference.com/w/cpp/header/istream) / [jp](https://ja.cppreference.com/w/cpp/header/istream) / [cpprefjp](https://cpprefjp.github.io/reference/istream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/istream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/istream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/istream)|| +|[<iterator>](http://eel.is/c++draft/iterator.synopsis)|[en](https://en.cppreference.com/w/cpp/header/iterator) / [jp](https://ja.cppreference.com/w/cpp/header/iterator) / [cpprefjp](https://cpprefjp.github.io/reference/iterator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iterator) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iterator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iterator)|| |[<latch>](http://eel.is/c++draft/latch.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| -|[<limits>](http://eel.is/c++draft/limits.syn)|[en](https://en.cppreference.com/w/cpp/header/limits) / [jp](https://ja.cppreference.com/w/cpp/header/limits) / [cpprefjp](https://cpprefjp.github.io/reference/limits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/limits) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/limits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/limits)|| -|[<list>](http://eel.is/c++draft/list.syn)|[en](https://en.cppreference.com/w/cpp/header/list) / [jp](https://ja.cppreference.com/w/cpp/header/list) / [cpprefjp](https://cpprefjp.github.io/reference/list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/list) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/list)|| -|[<locale>](http://eel.is/c++draft/locale.syn)|[en](https://en.cppreference.com/w/cpp/header/locale) / [jp](https://ja.cppreference.com/w/cpp/header/locale) / [cpprefjp](https://cpprefjp.github.io/reference/locale.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/locale) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/locale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/locale)|| -|[<map>](http://eel.is/c++draft/associative.map.syn)|[en](https://en.cppreference.com/w/cpp/header/map) / [jp](https://ja.cppreference.com/w/cpp/header/map) / [cpprefjp](https://cpprefjp.github.io/reference/map.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/map) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/map) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/map)|| -|[<memory>](http://eel.is/c++draft/memory.syn)|[en](https://en.cppreference.com/w/cpp/header/memory) / [jp](https://ja.cppreference.com/w/cpp/header/memory) / [cpprefjp](https://cpprefjp.github.io/reference/memory.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/memory) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory)|| +|[<limits>](http://eel.is/c++draft/limits.syn)|[en](https://en.cppreference.com/w/cpp/header/limits) / [jp](https://ja.cppreference.com/w/cpp/header/limits) / [cpprefjp](https://cpprefjp.github.io/reference/limits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/limits) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/limits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/limits)|| +|[<list>](http://eel.is/c++draft/list.syn)|[en](https://en.cppreference.com/w/cpp/header/list) / [jp](https://ja.cppreference.com/w/cpp/header/list) / [cpprefjp](https://cpprefjp.github.io/reference/list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/list) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/list)|| +|[<locale>](http://eel.is/c++draft/locale.syn)|[en](https://en.cppreference.com/w/cpp/header/locale) / [jp](https://ja.cppreference.com/w/cpp/header/locale) / [cpprefjp](https://cpprefjp.github.io/reference/locale.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/locale) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/locale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/locale)|| +|[<map>](http://eel.is/c++draft/associative.map.syn)|[en](https://en.cppreference.com/w/cpp/header/map) / [jp](https://ja.cppreference.com/w/cpp/header/map) / [cpprefjp](https://cpprefjp.github.io/reference/map.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/map) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/map) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/map)|| +|[<memory>](http://eel.is/c++draft/memory.syn)|[en](https://en.cppreference.com/w/cpp/header/memory) / [jp](https://ja.cppreference.com/w/cpp/header/memory) / [cpprefjp](https://cpprefjp.github.io/reference/memory.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/memory) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory)|| |[<memory_resource>](http://eel.is/c++draft/mem.res.syn)|[en](https://en.cppreference.com/w/cpp/header/memory_resource) / [jp](https://ja.cppreference.com/w/cpp/header/memory_resource) / [cpprefjp](https://cpprefjp.github.io/reference/memory_resource.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory_resource) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory_resource)|since C++17| -|[<mutex>](http://eel.is/c++draft/mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/mutex) / [jp](https://ja.cppreference.com/w/cpp/header/mutex) / [cpprefjp](https://cpprefjp.github.io/reference/mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/mutex)|since C++11| -|[<new>](http://eel.is/c++draft/new.syn)|[en](https://en.cppreference.com/w/cpp/header/new) / [jp](https://ja.cppreference.com/w/cpp/header/new) / [cpprefjp](https://cpprefjp.github.io/reference/new.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/new) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/new) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/new)|| +|[<mutex>](http://eel.is/c++draft/mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/mutex) / [jp](https://ja.cppreference.com/w/cpp/header/mutex) / [cpprefjp](https://cpprefjp.github.io/reference/mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/mutex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/mutex)|since C++11| +|[<new>](http://eel.is/c++draft/new.syn)|[en](https://en.cppreference.com/w/cpp/header/new) / [jp](https://ja.cppreference.com/w/cpp/header/new) / [cpprefjp](https://cpprefjp.github.io/reference/new.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/new) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/new) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/new)|| |[<numbers>](http://eel.is/c++draft/numbers.syn)|[en](https://en.cppreference.com/w/cpp/header/numbers) / [jp](https://ja.cppreference.com/w/cpp/header/numbers) / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numbers)|since C++20| -|[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/numeric) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| -|[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| -|[<ostream>](http://eel.is/c++draft/ostream.syn)|[en](https://en.cppreference.com/w/cpp/header/ostream) / [jp](https://ja.cppreference.com/w/cpp/header/ostream) / [cpprefjp](https://cpprefjp.github.io/reference/ostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ostream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ostream)|| -|[<queue>](http://eel.is/c++draft/queue.syn)|[en](https://en.cppreference.com/w/cpp/header/queue) / [jp](https://ja.cppreference.com/w/cpp/header/queue) / [cpprefjp](https://cpprefjp.github.io/reference/queue.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/queue) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/queue) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/queue)|| -|[<random>](http://eel.is/c++draft/rand.synopsis)|[en](https://en.cppreference.com/w/cpp/header/random) / [jp](https://ja.cppreference.com/w/cpp/header/random) / [cpprefjp](https://cpprefjp.github.io/reference/random.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/random) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/random) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/random)|since C++11| +|[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/numeric) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| +|[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| +|[<ostream>](http://eel.is/c++draft/ostream.syn)|[en](https://en.cppreference.com/w/cpp/header/ostream) / [jp](https://ja.cppreference.com/w/cpp/header/ostream) / [cpprefjp](https://cpprefjp.github.io/reference/ostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ostream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ostream)|| +|[<queue>](http://eel.is/c++draft/queue.syn)|[en](https://en.cppreference.com/w/cpp/header/queue) / [jp](https://ja.cppreference.com/w/cpp/header/queue) / [cpprefjp](https://cpprefjp.github.io/reference/queue.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/queue) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/queue) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/queue)|| +|[<random>](http://eel.is/c++draft/rand.synopsis)|[en](https://en.cppreference.com/w/cpp/header/random) / [jp](https://ja.cppreference.com/w/cpp/header/random) / [cpprefjp](https://cpprefjp.github.io/reference/random.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/random) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/random) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/random)|since C++11| |[<ranges>](http://eel.is/c++draft/ranges.syn)|[en](https://en.cppreference.com/w/cpp/header/ranges) / [jp](https://ja.cppreference.com/w/cpp/header/ranges) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ranges) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ranges)|since C++20| -|[<ratio>](http://eel.is/c++draft/ratio.syn)|[en](https://en.cppreference.com/w/cpp/header/ratio) / [jp](https://ja.cppreference.com/w/cpp/header/ratio) / [cpprefjp](https://cpprefjp.github.io/reference/ratio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ratio) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ratio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ratio)|since C++11| -|[<regex>](http://eel.is/c++draft/re.syn)|[en](https://en.cppreference.com/w/cpp/header/regex) / [jp](https://ja.cppreference.com/w/cpp/header/regex) / [cpprefjp](https://cpprefjp.github.io/reference/regex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/regex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/regex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/regex)|since C++11| -|[<scoped_allocator>](http://eel.is/c++draft/allocator.adaptor.syn)|[en](https://en.cppreference.com/w/cpp/header/scoped_allocator) / [jp](https://ja.cppreference.com/w/cpp/header/scoped_allocator) / [cpprefjp](https://cpprefjp.github.io/reference/scoped_allocator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/scoped_allocator) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/scoped_allocator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/scoped_allocator)|since C++11| +|[<ratio>](http://eel.is/c++draft/ratio.syn)|[en](https://en.cppreference.com/w/cpp/header/ratio) / [jp](https://ja.cppreference.com/w/cpp/header/ratio) / [cpprefjp](https://cpprefjp.github.io/reference/ratio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ratio) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ratio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ratio)|since C++11| +|[<regex>](http://eel.is/c++draft/re.syn)|[en](https://en.cppreference.com/w/cpp/header/regex) / [jp](https://ja.cppreference.com/w/cpp/header/regex) / [cpprefjp](https://cpprefjp.github.io/reference/regex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/regex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/regex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/regex)|since C++11| +|[<scoped_allocator>](http://eel.is/c++draft/allocator.adaptor.syn)|[en](https://en.cppreference.com/w/cpp/header/scoped_allocator) / [jp](https://ja.cppreference.com/w/cpp/header/scoped_allocator) / [cpprefjp](https://cpprefjp.github.io/reference/scoped_allocator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/scoped_allocator) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/scoped_allocator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/scoped_allocator)|since C++11| |[<semaphore>](http://eel.is/c++draft/semaphore.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| -|[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| -|[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| +|[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| +|[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| |[<source_location>](http://eel.is/c++draft/source.location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / [cpprefjp](https://cpprefjp.github.io/reference/source_location.html)|libstdc++ / libc++ / MSVC|since C++20| -|[<span>](http://eel.is/c++draft/span.syn)|[en](https://en.cppreference.com/w/cpp/header/span) / [jp](https://ja.cppreference.com/w/cpp/header/span) / [cpprefjp](https://cpprefjp.github.io/reference/span.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/span) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/span) / MSVC|since C++20| -|[<sstream>](http://eel.is/c++draft/sstream.syn)|[en](https://en.cppreference.com/w/cpp/header/sstream) / [jp](https://ja.cppreference.com/w/cpp/header/sstream) / [cpprefjp](https://cpprefjp.github.io/reference/sstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/sstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/sstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/sstream)|| -|[<stack>](http://eel.is/c++draft/stack.syn)|[en](https://en.cppreference.com/w/cpp/header/stack) / [jp](https://ja.cppreference.com/w/cpp/header/stack) / [cpprefjp](https://cpprefjp.github.io/reference/stack.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stack) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/stack) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stack)|| -|[<stdexcept>](http://eel.is/c++draft/stdexcept.syn)|[en](https://en.cppreference.com/w/cpp/header/stdexcept) / [jp](https://ja.cppreference.com/w/cpp/header/stdexcept) / [cpprefjp](https://cpprefjp.github.io/reference/stdexcept.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stdexcept) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/stdexcept) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stdexcept)|| +|[<span>](http://eel.is/c++draft/span.syn)|[en](https://en.cppreference.com/w/cpp/header/span) / [jp](https://ja.cppreference.com/w/cpp/header/span) / [cpprefjp](https://cpprefjp.github.io/reference/span.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/span) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/span) / MSVC|since C++20| +|[<sstream>](http://eel.is/c++draft/sstream.syn)|[en](https://en.cppreference.com/w/cpp/header/sstream) / [jp](https://ja.cppreference.com/w/cpp/header/sstream) / [cpprefjp](https://cpprefjp.github.io/reference/sstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/sstream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/sstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/sstream)|| +|[<stack>](http://eel.is/c++draft/stack.syn)|[en](https://en.cppreference.com/w/cpp/header/stack) / [jp](https://ja.cppreference.com/w/cpp/header/stack) / [cpprefjp](https://cpprefjp.github.io/reference/stack.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stack) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/stack) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stack)|| +|[<stdexcept>](http://eel.is/c++draft/stdexcept.syn)|[en](https://en.cppreference.com/w/cpp/header/stdexcept) / [jp](https://ja.cppreference.com/w/cpp/header/stdexcept) / [cpprefjp](https://cpprefjp.github.io/reference/stdexcept.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stdexcept) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/stdexcept) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stdexcept)|| |[<stop_token>](http://eel.is/c++draft/thread.stoptoken.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| -|[<streambuf>](http://eel.is/c++draft/streambuf.syn)|[en](https://en.cppreference.com/w/cpp/header/streambuf) / [jp](https://ja.cppreference.com/w/cpp/header/streambuf) / [cpprefjp](https://cpprefjp.github.io/reference/streambuf.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/streambuf) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/streambuf) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/streambuf)|| -|[<string>](http://eel.is/c++draft/string.syn)|[en](https://en.cppreference.com/w/cpp/header/string) / [jp](https://ja.cppreference.com/w/cpp/header/string) / [cpprefjp](https://cpprefjp.github.io/reference/string.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/string) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string)|| -|[<string_view>](http://eel.is/c++draft/string.view.synop)|[en](https://en.cppreference.com/w/cpp/header/string_view) / [jp](https://ja.cppreference.com/w/cpp/header/string_view) / [cpprefjp](https://cpprefjp.github.io/reference/string_view.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string_view) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/string_view) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string_view)|since C++17| +|[<streambuf>](http://eel.is/c++draft/streambuf.syn)|[en](https://en.cppreference.com/w/cpp/header/streambuf) / [jp](https://ja.cppreference.com/w/cpp/header/streambuf) / [cpprefjp](https://cpprefjp.github.io/reference/streambuf.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/streambuf) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/streambuf) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/streambuf)|| +|[<string>](http://eel.is/c++draft/string.syn)|[en](https://en.cppreference.com/w/cpp/header/string) / [jp](https://ja.cppreference.com/w/cpp/header/string) / [cpprefjp](https://cpprefjp.github.io/reference/string.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/string) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string)|| +|[<string_view>](http://eel.is/c++draft/string.view.synop)|[en](https://en.cppreference.com/w/cpp/header/string_view) / [jp](https://ja.cppreference.com/w/cpp/header/string_view) / [cpprefjp](https://cpprefjp.github.io/reference/string_view.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string_view) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/string_view) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string_view)|since C++17| |[<syncstream>](http://eel.is/c++draft/syncstream.syn)|[en](https://en.cppreference.com/w/cpp/header/syncstream) / [jp](https://ja.cppreference.com/w/cpp/header/syncstream) / [cpprefjp](https://cpprefjp.github.io/reference/syncstream.html)|libstdc++ / libc++ / MSVC|since C++20| -|[<system_error>](http://eel.is/c++draft/system.error.syn)|[en](https://en.cppreference.com/w/cpp/header/system_error) / [jp](https://ja.cppreference.com/w/cpp/header/system_error) / [cpprefjp](https://cpprefjp.github.io/reference/system_error.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/system_error) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/system_error) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/system_error)|since C++11| -|[<thread>](http://eel.is/c++draft/thread.syn)|[en](https://en.cppreference.com/w/cpp/header/thread) / [jp](https://ja.cppreference.com/w/cpp/header/thread) / [cpprefjp](https://cpprefjp.github.io/reference/thread.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/thread) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/thread) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/thread)|since C++11| -|[<tuple>](http://eel.is/c++draft/tuple.syn)|[en](https://en.cppreference.com/w/cpp/header/tuple) / [jp](https://ja.cppreference.com/w/cpp/header/tuple) / [cpprefjp](https://cpprefjp.github.io/reference/tuple.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/tuple) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/tuple) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/tuple)|since C++11| -|[<type_traits>](http://eel.is/c++draft/meta.type.synop)|[en](https://en.cppreference.com/w/cpp/header/type_traits) / [jp](https://ja.cppreference.com/w/cpp/header/type_traits) / [cpprefjp](https://cpprefjp.github.io/reference/type_traits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/type_traits) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/type_traits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/type_traits)|since C++11| -|[<typeindex>](http://eel.is/c++draft/type.index.synopsis)|[en](https://en.cppreference.com/w/cpp/header/typeindex) / [jp](https://ja.cppreference.com/w/cpp/header/typeindex) / [cpprefjp](https://cpprefjp.github.io/reference/typeindex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/typeindex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/typeindex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/typeindex)|since C++11| -|[<typeinfo>](http://eel.is/c++draft/typeinfo.syn)|[en](https://en.cppreference.com/w/cpp/header/typeinfo) / [jp](https://ja.cppreference.com/w/cpp/header/typeinfo) / [cpprefjp](https://cpprefjp.github.io/reference/typeinfo.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/typeinfo) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/typeinfo) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/typeinfo)|| -|[<unordered_map>](http://eel.is/c++draft/unord.map.syn)|[en](https://en.cppreference.com/w/cpp/header/unordered_map) / [jp](https://ja.cppreference.com/w/cpp/header/unordered_map) / [cpprefjp](https://cpprefjp.github.io/reference/unordered_map.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/unordered_map) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/unordered_map) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/unordered_map)|since C++11| -|[<unordered_set>](http://eel.is/c++draft/unord.set.syn)|[en](https://en.cppreference.com/w/cpp/header/unordered_set) / [jp](https://ja.cppreference.com/w/cpp/header/unordered_set) / [cpprefjp](https://cpprefjp.github.io/reference/unordered_set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/unordered_set) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/unordered_set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/unordered_set)|since C++11| -|[<utility>](http://eel.is/c++draft/utility)|[en](https://en.cppreference.com/w/cpp/header/utility) / [jp](https://ja.cppreference.com/w/cpp/header/utility) / [cpprefjp](https://cpprefjp.github.io/reference/utility.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/utility) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/utility) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/utility)|| -|[<valarray>](http://eel.is/c++draft/valarray.syn)|[en](https://en.cppreference.com/w/cpp/header/valarray) / [jp](https://ja.cppreference.com/w/cpp/header/valarray) / [cpprefjp](https://cpprefjp.github.io/reference/valarray.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/valarray) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/valarray) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/valarray)|| -|[<variant>](http://eel.is/c++draft/variant.syn)|[en](https://en.cppreference.com/w/cpp/header/variant) / [jp](https://ja.cppreference.com/w/cpp/header/variant) / [cpprefjp](https://cpprefjp.github.io/reference/variant.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/variant) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/variant)|since C++17| -|[<vector>](http://eel.is/c++draft/vector.syn)|[en](https://en.cppreference.com/w/cpp/header/vector) / [jp](https://ja.cppreference.com/w/cpp/header/vector) / [cpprefjp](https://cpprefjp.github.io/reference/vector.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/vector) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/vector) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/vector)|| -|[<version>](http://eel.is/c++draft/support.limits.general)|[en](https://en.cppreference.com/w/cpp/header/version) / [jp](https://ja.cppreference.com/w/cpp/header/version) / [cpprefjp](https://cpprefjp.github.io/reference/version.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/version) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/version) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/version)|since C++20| +|[<system_error>](http://eel.is/c++draft/system.error.syn)|[en](https://en.cppreference.com/w/cpp/header/system_error) / [jp](https://ja.cppreference.com/w/cpp/header/system_error) / [cpprefjp](https://cpprefjp.github.io/reference/system_error.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/system_error) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/system_error) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/system_error)|since C++11| +|[<thread>](http://eel.is/c++draft/thread.syn)|[en](https://en.cppreference.com/w/cpp/header/thread) / [jp](https://ja.cppreference.com/w/cpp/header/thread) / [cpprefjp](https://cpprefjp.github.io/reference/thread.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/thread) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/thread) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/thread)|since C++11| +|[<tuple>](http://eel.is/c++draft/tuple.syn)|[en](https://en.cppreference.com/w/cpp/header/tuple) / [jp](https://ja.cppreference.com/w/cpp/header/tuple) / [cpprefjp](https://cpprefjp.github.io/reference/tuple.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/tuple) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/tuple) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/tuple)|since C++11| +|[<type_traits>](http://eel.is/c++draft/meta.type.synop)|[en](https://en.cppreference.com/w/cpp/header/type_traits) / [jp](https://ja.cppreference.com/w/cpp/header/type_traits) / [cpprefjp](https://cpprefjp.github.io/reference/type_traits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/type_traits) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/type_traits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/type_traits)|since C++11| +|[<typeindex>](http://eel.is/c++draft/type.index.synopsis)|[en](https://en.cppreference.com/w/cpp/header/typeindex) / [jp](https://ja.cppreference.com/w/cpp/header/typeindex) / [cpprefjp](https://cpprefjp.github.io/reference/typeindex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/typeindex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/typeindex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/typeindex)|since C++11| +|[<typeinfo>](http://eel.is/c++draft/typeinfo.syn)|[en](https://en.cppreference.com/w/cpp/header/typeinfo) / [jp](https://ja.cppreference.com/w/cpp/header/typeinfo) / [cpprefjp](https://cpprefjp.github.io/reference/typeinfo.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/typeinfo) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/typeinfo) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/typeinfo)|| +|[<unordered_map>](http://eel.is/c++draft/unord.map.syn)|[en](https://en.cppreference.com/w/cpp/header/unordered_map) / [jp](https://ja.cppreference.com/w/cpp/header/unordered_map) / [cpprefjp](https://cpprefjp.github.io/reference/unordered_map.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/unordered_map) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/unordered_map) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/unordered_map)|since C++11| +|[<unordered_set>](http://eel.is/c++draft/unord.set.syn)|[en](https://en.cppreference.com/w/cpp/header/unordered_set) / [jp](https://ja.cppreference.com/w/cpp/header/unordered_set) / [cpprefjp](https://cpprefjp.github.io/reference/unordered_set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/unordered_set) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/unordered_set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/unordered_set)|since C++11| +|[<utility>](http://eel.is/c++draft/utility)|[en](https://en.cppreference.com/w/cpp/header/utility) / [jp](https://ja.cppreference.com/w/cpp/header/utility) / [cpprefjp](https://cpprefjp.github.io/reference/utility.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/utility) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/utility) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/utility)|| +|[<valarray>](http://eel.is/c++draft/valarray.syn)|[en](https://en.cppreference.com/w/cpp/header/valarray) / [jp](https://ja.cppreference.com/w/cpp/header/valarray) / [cpprefjp](https://cpprefjp.github.io/reference/valarray.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/valarray) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/valarray) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/valarray)|| +|[<variant>](http://eel.is/c++draft/variant.syn)|[en](https://en.cppreference.com/w/cpp/header/variant) / [jp](https://ja.cppreference.com/w/cpp/header/variant) / [cpprefjp](https://cpprefjp.github.io/reference/variant.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/variant) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/variant) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/variant)|since C++17| +|[<vector>](http://eel.is/c++draft/vector.syn)|[en](https://en.cppreference.com/w/cpp/header/vector) / [jp](https://ja.cppreference.com/w/cpp/header/vector) / [cpprefjp](https://cpprefjp.github.io/reference/vector.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/vector) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/vector) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/vector)|| +|[<version>](http://eel.is/c++draft/support.limits.general)|[en](https://en.cppreference.com/w/cpp/header/version) / [jp](https://ja.cppreference.com/w/cpp/header/version) / [cpprefjp](https://cpprefjp.github.io/reference/version.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/version) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/version) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/version)|since C++20| ## 非推奨または削除 |ヘッダ|リファレンス|実装|バージョン| |---|---|---|---| -|[<ccomplex>](http://eel.is/c++draft/depr.complex.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ccomplex) / [jp](https://ja.cppreference.com/w/cpp/header/ccomplex) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ccomplex) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ccomplex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ccomplex)|since C++11,
    deprecated in C++17,
    removed in C++20| -|[<ciso646>](http://eel.is/c++draft/depr.iso646.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ciso646) / [jp](https://ja.cppreference.com/w/cpp/header/ciso646) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ciso646) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ciso646) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ciso646)|removed in C++20| -|[<codecvt>](http://eel.is/c++draft/depr.codecvt.syn)|[en](https://en.cppreference.com/w/cpp/header/codecvt) / [jp](https://ja.cppreference.com/w/cpp/header/codecvt) / [cpprefjp](https://cpprefjp.github.io/reference/codecvt.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/codecvt) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/codecvt) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/codecvt)|since C++11,
    deprecated in C++17| +|[<ccomplex>](http://eel.is/c++draft/depr.complex.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ccomplex) / [jp](https://ja.cppreference.com/w/cpp/header/ccomplex) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ccomplex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ccomplex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ccomplex)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<ciso646>](http://eel.is/c++draft/depr.iso646.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ciso646) / [jp](https://ja.cppreference.com/w/cpp/header/ciso646) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ciso646) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ciso646) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ciso646)|removed in C++20| +|[<codecvt>](http://eel.is/c++draft/depr.codecvt.syn)|[en](https://en.cppreference.com/w/cpp/header/codecvt) / [jp](https://ja.cppreference.com/w/cpp/header/codecvt) / [cpprefjp](https://cpprefjp.github.io/reference/codecvt.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/codecvt) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/codecvt) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/codecvt)|since C++11,
    deprecated in C++17| |[<cstdalign>](http://eel.is/c++draft/depr.stdalign.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdalign) / [jp](https://ja.cppreference.com/w/cpp/header/cstdalign) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdalign) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdalign)|since C++11,
    deprecated in C++17,
    removed in C++20| -|[<cstdbool>](http://eel.is/c++draft/depr.stdbool.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdbool) / [jp](https://ja.cppreference.com/w/cpp/header/cstdbool) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdbool) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/cstdbool) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdbool)|since C++11,
    deprecated in C++17,
    removed in C++20| -|[<ctgmath>](http://eel.is/c++draft/depr.tgmath.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ctgmath) / [jp](https://ja.cppreference.com/w/cpp/header/ctgmath) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctgmath) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/ctgmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctgmath)|since C++11,
    deprecated in C++17,
    removed in C++20| -|[<strstream>](http://eel.is/c++draft/depr.strstream.syn)|[en](https://en.cppreference.com/w/cpp/header/strstream) / [jp](https://ja.cppreference.com/w/cpp/header/strstream) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/include/backward/strstream) / [libc++](https://github.com/llvm-mirror/libcxx/blob/master/include/strstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/strstream)|deprecated in C++98| +|[<cstdbool>](http://eel.is/c++draft/depr.stdbool.h.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdbool) / [jp](https://ja.cppreference.com/w/cpp/header/cstdbool) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdbool) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstdbool) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdbool)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<ctgmath>](http://eel.is/c++draft/depr.tgmath.h.syn)|[en](https://en.cppreference.com/w/cpp/header/ctgmath) / [jp](https://ja.cppreference.com/w/cpp/header/ctgmath) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/ctgmath) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ctgmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ctgmath)|since C++11,
    deprecated in C++17,
    removed in C++20| +|[<strstream>](http://eel.is/c++draft/depr.strstream.syn)|[en](https://en.cppreference.com/w/cpp/header/strstream) / [jp](https://ja.cppreference.com/w/cpp/header/strstream) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc++-v3/include/backward/strstream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/strstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/strstream)|deprecated in C++98| From 8b4ec882cfc790bf558e458018a903cf7f255531 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 24 Jan 2020 00:27:41 +0900 Subject: [PATCH 147/457] Update cpp20.md --- docs/standardization/cpp20.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index bc7b6d0..3aa8c55 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -12,14 +12,14 @@ C++20 の変更すべてをカバーするために、項目追加・執筆作 ```C++ #include -enum class Terrain +enum class Terrain : unsigned char { Open, Forest, Hill, Mountain, Desert, Tundra, River, Ocean }; struct Tile { - unsigned int height : 4 = 1; // デフォルト値を 1 に + unsigned char height : 4 = 1; // デフォルト値を 1 に Terrain terrain : 3 = Terrain::Open; // デフォルト値を明示的に Terrain::Open に bool passable : 1 = true; // デフォルト値を true に }; @@ -29,10 +29,10 @@ int main() std::cout << std::boolalpha; Tile tile1; - std::cout << tile1.height << ", " << static_cast(tile1.terrain) << ", " << tile1.passable << '\n'; + std::cout << static_cast(tile1.height) << ", " << static_cast(tile1.terrain) << ", " << tile1.passable << '\n'; Tile tile2{ 15, Terrain::Mountain, false }; - std::cout << tile2.height << ", " << static_cast(tile2.terrain) << ", " << tile2.passable << '\n'; + std::cout << static_cast(tile2.height) << ", " << static_cast(tile2.terrain) << ", " << tile2.passable << '\n'; } ``` ``` From 7b877e6858deea76c1bf54e91b09a4e42d6fe692 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 24 Jan 2020 00:31:43 +0900 Subject: [PATCH 148/457] Update contributors.md --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 5a554c2..6428823 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -37,6 +37,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [標準化会議 記事加筆](https://github.com/cppmap/cppmap.docs/pull/27) - [標準ライブラリ 執筆協力](https://github.com/cppmap/cppmap.docs/issues/28) - [標準ライブラリ 記事加筆](https://github.com/cppmap/cppmap.docs/issues/31) + - [標準ライブラリ 記事更新](https://github.com/cppmap/cppmap.docs/pull/34) - [@tak0kada](https://twitter.com/tak0kada) さん - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/26) - [@tetzrom](https://twitter.com/tetzrom) さん From 8ac030d01bf2fd10a15d12c61530d3983f4dcfb5 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 30 Jan 2020 09:52:14 +0900 Subject: [PATCH 149/457] Update studymeetings.md --- docs/learn/studymeetings.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index 86dc9e8..d52eee8 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -17,9 +17,10 @@ description: 国内で開催されている C++ 関連の勉強会イベント | タイトル | 発表者 | ムービー | |------------------------------------------------------|-------------------|------| | 勉強会と会場の説明 | Akira Takahashi | | -| CPythonを組み込む話 (仮) | Shintarou Okada | | -| 「みんな大好き!using ディレクティブ!」
    「みんな代替トークン使とる。使てへんのお前だけ。」 | Kariya Mitsuru | | -| 続・モジュール | Tetsuro Matsumura | | +| [蛇を埋葬する](https://www.slideshare.net/ShintarouOkada/pythonembed-225851252) | Shintarou Okada | | +| [みんな大好き!using ディレクティブ!](https://speakerdeck.com/kariyamitsuru/using-directive) | Kariya Mitsuru | | +| [みんな代替トークン使とる。使てへんのお前だけ。](https://speakerdeck.com/kariyamitsuru/alternative-tokens) | Kariya Mitsuru | | +| [続・モジュール](https://www.slideshare.net/TetsuroMatsumura/introduction-to-c-modules-part-2-225829715) | Tetsuro Matsumura | | | RustとC++を比べてみた(当社比) | いなむのみたま | | | ディスカッション | (全員参加) | | From 18671097ab042f136930630a25e2fe07f4ec502d Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 30 Jan 2020 09:59:00 +0900 Subject: [PATCH 150/457] Update studymeetings.md --- docs/learn/studymeetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learn/studymeetings.md b/docs/learn/studymeetings.md index d52eee8..47301fb 100644 --- a/docs/learn/studymeetings.md +++ b/docs/learn/studymeetings.md @@ -139,6 +139,7 @@ description: 国内で開催されている C++ 関連の勉強会イベント | イベント番号 | 内容 | ムービー | |-------------------------------------------------------------------|------------------|-------------------------------------------| +| #11 [(2020-01-08)](https://caddi.connpass.com/event/160626/) | volatile、std::launder、PODやstandard layout型の歴史など | [:fa-play:](https://youtu.be/0d9upvmeuu4) | | #10 [(2019-12-17)](https://caddi.connpass.com/event/158954/) | テンプレートの同一性、C++20の新機能解説 | [:fa-play:](https://youtu.be/3kZwwzdPR8M) | | #9 [(2019-12-03)](https://caddi.connpass.com/event/157462/) | コンセプト(時間があれば、Three-way Comparison operator) | [:fa-play:](https://youtu.be/nJcWfICJwyc) | | | #8 [(2019-11-19)](https://caddi.connpass.com/event/154653/) | C++20 の機能紹介と一時オブジェクトの寿命 | [:fa-play:](https://youtu.be/Gu9Y5t3uCZA) | From 46a0bcaf1d8d454bf416dba0aa208fea6ada4915 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 2 Feb 2020 10:40:11 +0900 Subject: [PATCH 151/457] Update index.md --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index 0e5c630..8034d90 100644 --- a/docs/index.md +++ b/docs/index.md @@ -29,3 +29,4 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - chobby75 - papparappara - (匿名 😀) +- minachun From 6d036f2f7e54501ebbb3d4d89b6b8b7a6552d2f2 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 2 Feb 2020 17:53:46 +0900 Subject: [PATCH 152/457] Update onlinecompilers.md --- docs/tools/onlinecompilers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index ad1041e..2c5b13a 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -8,8 +8,8 @@ C++ プログラムのコンパイル、実行、共有ができる Web サイ | | コンパイラ | 日本語入出力 | インタラクティブ | 複数ファイル | |---------------------------------------------------------------|-----------------------------------------------------------------------------------------------|:------------:|:------------:|:------------:| -| [Wandbox](https://wandbox.org/) |
  • GCC 4.4.7 - **10.0.0\***
  • Clang 3.1 - **10.0.0\***
  • | :fa-check: | | :fa-check: | -| [Compiler Explorer](https://godbolt.org/)
    (Execution モード) |
  • GCC 4.7.3 - **10.0.0\***
  • Clang 3.3 - **10.0.0\***
  • ICC 16.0.3 - **19.0.1**
  • | :fa-check: | | | +| [Wandbox](https://wandbox.org/) |
  • GCC 4.4.7 - **10.0.1\***
  • Clang 3.1 - **11.0.0\***
  • | :fa-check: | | :fa-check: | +| [Compiler Explorer](https://godbolt.org/)
    (Execution モード) |
  • GCC 4.7.3 - **10.0.0\***
  • Clang 3.3 - **11.0.0\***
  • ICC 16.0.3 - **19.0.1**
  • | :fa-check: | | | | [Ideone](https://ideone.com/) |
  • GCC 8.3.0
  • | :fa-check: | | | | [GDB Online](https://www.onlinegdb.com/) |
  • GCC 7.4.0
  • | :fa-check: | :fa-check: | :fa-check: | | [repl.it](https://repl.it/languages/cpp) |
  • Clang 7.0.0
  • | :fa-check: | :fa-check: | :fa-check: | From efccd7ecfc085c62d6981ff1a4c4c9cffa69d2d5 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 2 Feb 2020 18:18:27 +0900 Subject: [PATCH 153/457] Update cpp20.md --- docs/standardization/cpp20.md | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 3aa8c55..68ffafe 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -655,6 +655,50 @@ int main() C++11 では、`noexcept` の追加に合わせ、`throw(typeid, ...)` や `throw()` による動的例外指定が非推奨化されました。C++17 では前者が削除されましたが、古いコードにおいて広く使われていた後者は、移行猶予のために `noexcept(true)` のエイリアスとして改められつつ保持されていました。C++20 では後者も削除されます。 +### メッセージ付きの `[[nodiscard]]` 属性 [(P1301R4)](https://wg21.link/P1301R4) +C++17 で追加された `[[nodiscard]]` 属性は、ライブラリなどが提供する関数の誤用を防ぐ助けになりますが、関数がなぜ `[[nodiscard]]` 属性を持っているのかについて、利用者に十分な情報が伝わらない場合がありました。C++20 では `[[nodiscard("....")]]` のような形式でメッセージを追加できるようになります。戻り値の無視があった場合、コンパイラは警告に加えてこのメッセージを補足情報として出力できます。 + +```C++ +#include + +struct Data +{ +private: + + std::vector m_data; + +public: + + void clear() + { + m_data.clear(); + } + + [[nodiscard("Did you mean 'clear'?")]] + bool empty() const + { + return m_data.empty(); + } +}; + +int main() +{ + Data data; + + data.empty(); +} +``` + +コンパイラの出力例 + +``` +prog.cc:27:2: warning: ignoring return value of function declared with 'nodiscard' attribute: + Did you mean 'clear'? [-Wunused-result] + data.empty(); + ^~~~~~~~~~ +1 warning generated. +``` + ## 標準ライブラリ From 26ee255db39cfd3379e62897946635892c4ad401 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 2 Feb 2020 18:23:41 +0900 Subject: [PATCH 154/457] Update index.md --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index 8034d90..831e036 100644 --- a/docs/index.md +++ b/docs/index.md @@ -30,3 +30,4 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - papparappara - (匿名 😀) - minachun +- Fuyutsubaki From 7ad7f3960bad4ca8b54dc5e067798756246266a0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 2 Feb 2020 19:53:15 +0900 Subject: [PATCH 155/457] P1357R1 --- docs/standardization/cpp20.md | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 68ffafe..ca051e5 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1493,3 +1493,46 @@ int main() ### `std::list` と `std::forward_list` の要素削除メンバ関数が、削除した要素数を返すように [(P0646R1)](https://wg21.link/P0646R1) `std::list` のメンバ関数 `remove()` で要素を削除した際、実際に削除された要素数を知るには、前後で `size()` の比較を行わなければなりませんでした。しかし、`std::forward_list` の場合は `size()` メンバ関数を持たないため、O(n) の操作である `std::distance()` を使う必要がありました。C++20 では、`std::list` および `std::forward_list` の `remove()`, `remove_if()`, `unique()` メンバ関数が、削除された要素数を戻り値として返すようになります。なお、呼び出し側で戻り値を使わない場合、主要コンパイラは最適化で処理を省略するため、この仕様変更が実行時性能に与える影響は無いとされています。 + +## 要素数が決まっている配列型かどうかを調べる型特性 `std::is_bounded_array`, `std::is_unbounded_array` [(P1357R1)](https://wg21.link/P1357R1) +C++17 の標準ライブラリが提供する型特性には、配列の要素数が決まっている (bounded) かどうかを判定するものはありませんでした。C++20 では利便性のために、型 `T` が要素数既知の配列型であるかを調べる型特性 `std::is_bounded_array` と、型 `T` が要素数未知の配列型であるかを調べる型特性 `std::is_unbounded_array` が追加されました。 + +```C++ +#include +#include + +int main() +{ + std::cout << std::boolalpha; + + std::cout << std::is_bounded_array_v << '\n'; // false + std::cout << std::is_bounded_array_v << '\n'; // false + std::cout << std::is_bounded_array_v << '\n'; // true + + std::cout << std::is_unbounded_array_v << '\n'; // false + std::cout << std::is_unbounded_array_v << '\n'; // true + std::cout << std::is_unbounded_array_v << '\n'; // false +} +``` +``` +false +false +true +false +true +false +``` + +C++ 標準ライブラリの機能では、例えば `std::make_unique()` が要素数既知の配列型を禁止しています。こうしたオーバーロードを扱うときに、この型特性が便利です。 + +```C++ +#include +#include + +int main() +{ + auto p1 = std::make_unique(3); + auto p2 = std::make_unique(); // コンパイルエラー +} +``` + From 937c8036d99e7dbc0705d63a8d6dd235a1a4fd57 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 10 Feb 2020 21:52:38 +0900 Subject: [PATCH 156/457] fix --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index ca051e5..a4b7efc 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1494,7 +1494,7 @@ int main() `std::list` のメンバ関数 `remove()` で要素を削除した際、実際に削除された要素数を知るには、前後で `size()` の比較を行わなければなりませんでした。しかし、`std::forward_list` の場合は `size()` メンバ関数を持たないため、O(n) の操作である `std::distance()` を使う必要がありました。C++20 では、`std::list` および `std::forward_list` の `remove()`, `remove_if()`, `unique()` メンバ関数が、削除された要素数を戻り値として返すようになります。なお、呼び出し側で戻り値を使わない場合、主要コンパイラは最適化で処理を省略するため、この仕様変更が実行時性能に与える影響は無いとされています。 -## 要素数が決まっている配列型かどうかを調べる型特性 `std::is_bounded_array`, `std::is_unbounded_array` [(P1357R1)](https://wg21.link/P1357R1) +### 要素数が決まっている配列型かどうかを調べる型特性 `std::is_bounded_array`, `std::is_unbounded_array` [(P1357R1)](https://wg21.link/P1357R1) C++17 の標準ライブラリが提供する型特性には、配列の要素数が決まっている (bounded) かどうかを判定するものはありませんでした。C++20 では利便性のために、型 `T` が要素数既知の配列型であるかを調べる型特性 `std::is_bounded_array` と、型 `T` が要素数未知の配列型であるかを調べる型特性 `std::is_unbounded_array` が追加されました。 ```C++ From 1bbe5b3a3840574298fbd581de7b73e805d7b241 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 10 Feb 2020 22:37:24 +0900 Subject: [PATCH 157/457] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=B0=8F=E6=95=B0?= =?UTF-8?q?=E7=82=B9=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/libraries/math.md | 8 ++++++++ docs/libraries/text-data.md | 2 +- mkdocs.yml | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 docs/libraries/math.md diff --git a/docs/libraries/math.md b/docs/libraries/math.md new file mode 100644 index 0000000..e559d6d --- /dev/null +++ b/docs/libraries/math.md @@ -0,0 +1,8 @@ +description: C++ の数学ライブラリの紹介 + +# 数学 + +## 固定小数点数 + +- [Compositional Numeric Library](https://github.com/johnmcfarlane/cnl) BSL 1.0 +- [fpm](https://github.com/MikeLankamp/fpm) MIT diff --git a/docs/libraries/text-data.md b/docs/libraries/text-data.md index d6ea724..a97ff32 100644 --- a/docs/libraries/text-data.md +++ b/docs/libraries/text-data.md @@ -29,7 +29,7 @@ description: C++ のテキストデータライブラリの紹介 ## XML -- [Boost.PropertyTree](https://github.com/boostorg/property_tree) BSL 1.0 +- [Boost.PropertyTree](https://github.com/boostorg/property_tree) BSL 1.0 - 内部実装に RapidXml を使用 - [pugixml](https://github.com/zeux/pugixml) MIT - [RapidXml](http://rapidxml.sourceforge.net/) BSL 1.0 diff --git a/mkdocs.yml b/mkdocs.yml index b3ff34d..13f31ca 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -77,6 +77,7 @@ nav: - テキストデータ: libraries/text-data.md - 並行・並列: libraries/multi-threading.md - テストフレームワーク: libraries/testing.md + - 数学: libraries/math.md - ツール: - C++ コンパイラ: tools/compilers.md - C++ オンラインコンパイラ: tools/onlinecompilers.md From d9dbf7b87e52e3880882a3417fc06a7800fbb0e1 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 14 Feb 2020 22:09:42 +0900 Subject: [PATCH 158/457] Update index.md --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index 831e036..16eb9a6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -31,3 +31,4 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - (匿名 😀) - minachun - Fuyutsubaki +- (匿名 😊) From c2280474c6b2e85f88402bbe9bb8c0e86c06dea7 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 15 Feb 2020 01:40:23 +0900 Subject: [PATCH 159/457] Update cpp20.md --- docs/standardization/cpp20.md | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index a4b7efc..1e7deb7 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1536,3 +1536,42 @@ int main() } ``` +### `std::function` のムーブコンストラクタが `noexcept` に [(P0771R1)](https://wg21.link/P0771R1) +実行時性能を向上させるため、C++20 では `std::function` のムーブコンストラクタが `noexcept` になります。なお、libstdc++ と libc++ では提案時点ですでに実装済みでした。 + +### アルゴリズムライブラリの関数の多くが `constexpr` に [(P0202R3)](https://wg21.link/P0202R3), [(P0879R0)](https://wg21.link/P0879R0) +C++20 では `` ヘッダの `std::swap()`, `std::exchange()` および、`` ヘッダで条件を満たす全関数が `constexpr` に対応します。`std::all_of()` や `std::sort()`, `std::reverse()` など、よく使われるアルゴリズム関数が `constexpr` になります。 + +`` ヘッダで `constexpr` にならないのは以下の関数のみです。 + +- `std::stable_partition()`, `std::inplace_merge()`, `std::stable_sort()` + - メモリのアロケーション等が必要なため +- `std::shuffle()`, `std::sample()` + - `constexpr` 関数を持たない `std::uniform_int_distribution` を使用するため +- `ExecutionPolicy` を引数に取る関数 + +```C++ +#include +#include +#include + +constexpr int SumOfTop3(std::array a) +{ + std::nth_element(a.begin(), a.begin() + 3, a.end()); // C++20 では constexpr + + return a[0] + a[1] + a[2]; +} + +int main() +{ + constexpr int n = SumOfTop3({ 1, 8, 16, 4, 2 }); + + static_assert(n == 7); + + std::cout << n << '\n'; // 7 +} +``` + +``` +7 +``` \ No newline at end of file From b7daa3709842a81191a589ad18a0e85cac01c050 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 15 Feb 2020 01:44:11 +0900 Subject: [PATCH 160/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 1e7deb7..839a6aa 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1539,7 +1539,7 @@ int main() ### `std::function` のムーブコンストラクタが `noexcept` に [(P0771R1)](https://wg21.link/P0771R1) 実行時性能を向上させるため、C++20 では `std::function` のムーブコンストラクタが `noexcept` になります。なお、libstdc++ と libc++ では提案時点ですでに実装済みでした。 -### アルゴリズムライブラリの関数の多くが `constexpr` に [(P0202R3)](https://wg21.link/P0202R3), [(P0879R0)](https://wg21.link/P0879R0) +### ``, `` の多くの関数が `constexpr` に [(P0202R3)](https://wg21.link/P0202R3), [(P0879R0)](https://wg21.link/P0879R0) C++20 では `` ヘッダの `std::swap()`, `std::exchange()` および、`` ヘッダで条件を満たす全関数が `constexpr` に対応します。`std::all_of()` や `std::sort()`, `std::reverse()` など、よく使われるアルゴリズム関数が `constexpr` になります。 `` ヘッダで `constexpr` にならないのは以下の関数のみです。 From 908b48a3ec14bc3a8090f58ee85dd0b90da21a1e Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 15 Feb 2020 23:19:30 +0900 Subject: [PATCH 161/457] Update meetings.md --- docs/standardization/meetings.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 6318be2..23a6440 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -33,6 +33,10 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [2020-02-10 to 15](https://wg21.link/n4817) / プラハ, チェコ - [JTC1/SC22/WG21 - Papers 2020 mailing2020-01 pre-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-01) +#### 参加報告 +- [2020-02 Prague ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/) by Bryce Lelbach and others +- [Trip report: Winter ISO C++ standards meeting (Prague)](https://herbsutter.com/2020/02/15/trip-report-winter-iso-c-standards-meeting-prague/) by Herb Sutter + ## 2019 Belfast #### 場所 / 提案 / 会議の結果 - [2019-11-04 to 09](https://wg21.link/n4782) / ベルファスト, 北アイルランド, 英国 From f5d30a79048b51cf62671b06bab7524b3157821d Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 15 Feb 2020 23:25:47 +0900 Subject: [PATCH 162/457] Update meetings.md --- docs/standardization/meetings.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 23a6440..a74dc9f 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -6,7 +6,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 ## 2022 Portland #### 場所 -- 2022-02-07 to 12 / ポートランド, オレゴン州, 米国 +- [2022-02-07 to 12](https://wg21.link/N4831) / ポートランド, オレゴン州, 米国 ## 2021 未定 #### 場所 @@ -14,11 +14,11 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 ## 2021 Montreal #### 場所 -- 2021 夏 / モントリオール, カナダ +- 2021-07-12 TO 17 / モントリオール, カナダ ## 2021 Kona #### 場所 -- 2021-02-22 to 27 / コナ, ハワイ州, 米国 +- [2021-02-22 to 27](https://wg21.link/N4832) / コナ, ハワイ州, 米国 ## 2020 New York #### 場所 From b297e9b9967e477c7b5b275800e1993f5faa39d0 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 16 Feb 2020 23:55:09 +0900 Subject: [PATCH 163/457] Update cppx.md --- docs/standardization/cppx.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/standardization/cppx.md b/docs/standardization/cppx.md index ced4118..3f69d44 100644 --- a/docs/standardization/cppx.md +++ b/docs/standardization/cppx.md @@ -238,6 +238,37 @@ double Area(const Shape& shape) ``` +## 拡張浮動小数点数型 +- [Extended floating-point types (P1467)](https://wg21.link/P1467) +- [Fixed-layout floating-point type aliases (P1468)](https://wg21.link/P1468) + +`float`, `double`, `long double` 以外の浮動小数点数型の実装を可能にする提案です。コンピュータグラフィックスや機械学習分野で使用頻度が増えている半精度 (16-bit) 浮動小数点数型を、組み込み型として提供できるようにすることが主な目的です。 + + +## Unicode 名による文字エスケープ +- [Named universal character escapes (P2071)](https://wg21.link/P2071) + +Python などで採用されている、Unicode 名による文字エスケープを導入する提案です。不可視文字や似ている字形を文字 / 文字列リテラルで記述する際に役に立ちます。 + +```C++ +std::string a ="\N{ZERO WIDTH SPACE}"; // "​" (不可視の空白) +std::string b = "\N{GREEK CAPITAL LETTER OMEGA}"; // "Ω" +std::string c = "\N{OHM SIGN}"; // "Ω" +``` + + +## `std::string::operator=(char)` の問題の解消 +- [String's gratuitous assignment (P2037)](https://wg21.link/P2037) + +`std::string::operator=(char)` によって次のようなコードがコンパイルできてしまう問題の解決を図る提案です。この関数自体を `deprecated` にすることも解決法の候補として挙げられています。 + +```C++ +std::string s; +s = 48.0; +std::cout << s << '\n'; +``` + + ## Executors From f26d7f2bd7ced7ad04eefe900a2104ea8962170b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 18 Feb 2020 13:10:53 +0900 Subject: [PATCH 164/457] Update header.md --- docs/standardization/header.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 7fe63e3..723a04b 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -89,11 +89,11 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| |[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| |[<source_location>](http://eel.is/c++draft/source.location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / [cpprefjp](https://cpprefjp.github.io/reference/source_location.html)|libstdc++ / libc++ / MSVC|since C++20| -|[<span>](http://eel.is/c++draft/span.syn)|[en](https://en.cppreference.com/w/cpp/header/span) / [jp](https://ja.cppreference.com/w/cpp/header/span) / [cpprefjp](https://cpprefjp.github.io/reference/span.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/span) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/span) / MSVC|since C++20| +|[<span>](http://eel.is/c++draft/span.syn)|[en](https://en.cppreference.com/w/cpp/header/span) / [jp](https://ja.cppreference.com/w/cpp/header/span) / [cpprefjp](https://cpprefjp.github.io/reference/span.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/span) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/span) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/span)|since C++20| |[<sstream>](http://eel.is/c++draft/sstream.syn)|[en](https://en.cppreference.com/w/cpp/header/sstream) / [jp](https://ja.cppreference.com/w/cpp/header/sstream) / [cpprefjp](https://cpprefjp.github.io/reference/sstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/sstream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/sstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/sstream)|| |[<stack>](http://eel.is/c++draft/stack.syn)|[en](https://en.cppreference.com/w/cpp/header/stack) / [jp](https://ja.cppreference.com/w/cpp/header/stack) / [cpprefjp](https://cpprefjp.github.io/reference/stack.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stack) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/stack) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stack)|| |[<stdexcept>](http://eel.is/c++draft/stdexcept.syn)|[en](https://en.cppreference.com/w/cpp/header/stdexcept) / [jp](https://ja.cppreference.com/w/cpp/header/stdexcept) / [cpprefjp](https://cpprefjp.github.io/reference/stdexcept.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stdexcept) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/stdexcept) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stdexcept)|| -|[<stop_token>](http://eel.is/c++draft/thread.stoptoken.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<stop_token>](http://eel.is/c++draft/thread.stoptoken.syn)|[en](https://en.cppreference.com/w/cpp/header/stop_token) / jp / [cpprefjp](https://cpprefjp.github.io/reference/stop_token.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stop_token) / libc++ / MSVC|since C++20| |[<streambuf>](http://eel.is/c++draft/streambuf.syn)|[en](https://en.cppreference.com/w/cpp/header/streambuf) / [jp](https://ja.cppreference.com/w/cpp/header/streambuf) / [cpprefjp](https://cpprefjp.github.io/reference/streambuf.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/streambuf) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/streambuf) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/streambuf)|| |[<string>](http://eel.is/c++draft/string.syn)|[en](https://en.cppreference.com/w/cpp/header/string) / [jp](https://ja.cppreference.com/w/cpp/header/string) / [cpprefjp](https://cpprefjp.github.io/reference/string.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/string) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string)|| |[<string_view>](http://eel.is/c++draft/string.view.synop)|[en](https://en.cppreference.com/w/cpp/header/string_view) / [jp](https://ja.cppreference.com/w/cpp/header/string_view) / [cpprefjp](https://cpprefjp.github.io/reference/string_view.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string_view) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/string_view) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string_view)|since C++17| From b31fe2e7a9219ed99972e6bd90e039ed15d23cdc Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 25 Feb 2020 16:49:16 +0900 Subject: [PATCH 165/457] Update cpp20.md --- docs/standardization/cpp20.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 839a6aa..593a6ae 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1425,33 +1425,34 @@ int main() `std::move()` を使うこの仕様変更は、同じ `` ヘッダの `std::inner_product()` や `std::partial_sum()`, `std::adjacent_difference()` にも適用されます。 -### 2 の累乗数に関するユーティリティ関数を追加 [(P0556R3)](https://wg21.link/P0556R3), [(P1355R2)](https://wg21.link/P1355R2) +### 2 の累乗数に関するユーティリティ関数を追加 [(P0556R3)](https://wg21.link/P0556R3), [(P1355R2)](https://wg21.link/P1355R2), [(P1956R1)](https://wg21.link/P1956R1) ある整数が 2 の累乗数であるかを調べたり、ある整数に近い 2 の累乗数を探したりする処理は、プログラミングでよく登場しますが、C++17 の標準ライブラリには実装されていませんでした。C++20 では次のような関数が追加されます。 ```C++ namespace std { template - constexpr bool ispow2(T x) noexcept; + constexpr bool has_single_bit(T x) noexcept; template - constexpr T ceil2(T x); + constexpr T bit_ceil(T x); template - constexpr T floor2(T x) noexcept; + constexpr T bit_floor(T x) noexcept; template - constexpr T log2p1(T x) noexcept; + constexpr T bit_width(T x) noexcept; } ``` -- 引数 `x` が 2 の累乗数であるかを判定する `std::ispow2(x)` -- `x` 以上で最小の 2 の累乗数を返す `std::ceil2(x)` -- `x` 以下で最大の 2 の累乗数 (ただし `x` が 0 の場合は 0) を返す `std::floor2(x)` -- `(1 + log2(x))` の整数部 (ただし `x` が 0 の場合は 0) を返す `std::log2p1(x)` +- 引数 `x` のビット列に含まれる 1 が 1 個だけであるかを判定する `std::has_single_bit(x)` + - 「`x` が 2 の累乗数 (1, 2, 4, 8, ...) であるか」と同じ意味 +- `x` 以上で最小の 2 の累乗数を返す `std::bit_ceil(x)` +- `x` 以下で最大の 2 の累乗数 (ただし `x` が 0 の場合は 0) を返す `std::bit_floor(x)` +- `(1 + log2(x))` の整数部 (ただし `x` が 0 の場合は 0) を返す `std::bit_width(x)` - 「`x` を表現するために何ビット必要か」と同じ意味 -いずれの関数も、型 `T` が符号なし整数型 (`unsigned char`, `unsigned short`, `unsigned int`, `unsigned long`, `unsigned long long`) の場合のみオーバーロード解決に参加します。なお、`std::ceil2(x)` について、結果が型 `T` で表現できない場合の動作は未定義です。 +いずれの関数も、型 `T` が符号なし整数型 (`unsigned char`, `unsigned short`, `unsigned int`, `unsigned long`, `unsigned long long`) の場合のみオーバーロード解決に参加します。なお、`std::bit_ceil(x)` について、結果が型 `T` で表現できない場合の動作は未定義です。 ```C++ #include @@ -1462,10 +1463,10 @@ int main() for (unsigned i = 0; i <= 16; ++i) { std::cout << i << ": " - << std::ispow2(i) << ' ' - << std::ceil2(i) << ' ' - << std::floor2(i) << ' ' - << std::log2p1(i) << '\n'; + << std::has_single_bit(i) << ' ' + << std::bit_ceil(i) << ' ' + << std::bit_floor(i) << ' ' + << std::bit_width(i) << '\n'; } } ``` From 8074004ca9e82cdd8d6a014f48da0d8796b549fb Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 29 Feb 2020 15:19:09 +0900 Subject: [PATCH 166/457] =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E3=83=95?= =?UTF-8?q?=E3=82=A9=E3=83=BC=E3=83=9E=E3=83=83=E3=82=BF=E3=81=AE=E7=A9=BA?= =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #35 --- docs/tools/code-formatter.md | 4 ++++ mkdocs.yml | 1 + 2 files changed, 5 insertions(+) create mode 100644 docs/tools/code-formatter.md diff --git a/docs/tools/code-formatter.md b/docs/tools/code-formatter.md new file mode 100644 index 0000000..b59fee3 --- /dev/null +++ b/docs/tools/code-formatter.md @@ -0,0 +1,4 @@ +description: C++ のコードフォーマッタの紹介 + +# C++ コードフォーマッタ + diff --git a/mkdocs.yml b/mkdocs.yml index 13f31ca..ee6931a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -82,5 +82,6 @@ nav: - C++ コンパイラ: tools/compilers.md - C++ オンラインコンパイラ: tools/onlinecompilers.md - C++ パッケージマネージャ: tools/package-manager.md + - C++ コードフォーマッタ: tools/code-formatter.md - 貢献: - コントリビュータ: contribution/contributors.md From c4f00be50d0a3ef54fe0b0727b08f22e8f85c2b0 Mon Sep 17 00:00:00 2001 From: Sao Haruka Date: Sun, 1 Mar 2020 19:25:45 +0900 Subject: [PATCH 167/457] =?UTF-8?q?ClangFormat=E3=81=AE=E7=B4=B9=E4=BB=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tools/code-formatter.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/tools/code-formatter.md b/docs/tools/code-formatter.md index b59fee3..a79cb0e 100644 --- a/docs/tools/code-formatter.md +++ b/docs/tools/code-formatter.md @@ -2,3 +2,14 @@ description: C++ のコードフォーマッタの紹介 # C++ コードフォーマッタ +## ClangFormat + +公式サイト +- ClangFormat +[https://clang.llvm.org/docs/ClangFormat.html](https://clang.llvm.org/docs/ClangFormat.html) + +ダウンロードを直接行うならLLVMのダウンロードページが便利です +ビルド済みバイナリが提供されています + +- LLVM Download Page +[http://releases.llvm.org/download.html](http://releases.llvm.org/download.html) From f61c08c67c48acff0fb50c90dffb0bb219bdb9a1 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 1 Mar 2020 19:49:13 +0900 Subject: [PATCH 168/457] =?UTF-8?q?=E6=95=B4=E5=BD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tools/code-formatter.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tools/code-formatter.md b/docs/tools/code-formatter.md index a79cb0e..3b762df 100644 --- a/docs/tools/code-formatter.md +++ b/docs/tools/code-formatter.md @@ -8,8 +8,8 @@ description: C++ のコードフォーマッタの紹介 - ClangFormat [https://clang.llvm.org/docs/ClangFormat.html](https://clang.llvm.org/docs/ClangFormat.html) -ダウンロードを直接行うならLLVMのダウンロードページが便利です -ビルド済みバイナリが提供されています +ダウンロードを直接行うなら LLVM のダウンロードページが便利です。 +ビルド済みバイナリが提供されています。 - LLVM Download Page [http://releases.llvm.org/download.html](http://releases.llvm.org/download.html) From 7d9cb76aec492e9f6cee68a1e48807f358e476c5 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 1 Mar 2020 19:52:00 +0900 Subject: [PATCH 169/457] Update contributors.md --- docs/contribution/contributors.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 6428823..dd9a579 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -14,6 +14,8 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [@Fuyutsubaki](https://twitter.com/Fuyutsubaki) さん - [なぜかコンパイルできない ネタ提供](https://github.com/cppmap/cppmap.docs/issues/9#issuecomment-472076826) - [標準ライブラリ 記事作成](https://github.com/cppmap/cppmap.docs/pull/12) +- [@hr_sao](https://twitter.com/hr_sao) さん + - [C++ コードフォーマッタ 記事加筆](https://github.com/cppmap/cppmap.docs/pull/36) - [@kariya_mitsuru](https://twitter.com/kariya_mitsuru) さん - [C++17 洋書 情報提供](https://github.com/cppmap/cppmap.docs/issues/6) - [処理系の対応状況 情報提供](https://github.com/cppmap/cppmap.docs/pull/7) From e248103fe276904efd9571fe2efdb4a1af2da24f Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 4 Mar 2020 21:37:38 +0900 Subject: [PATCH 170/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index a74dc9f..a60efa9 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -36,6 +36,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 参加報告 - [2020-02 Prague ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/) by Bryce Lelbach and others - [Trip report: Winter ISO C++ standards meeting (Prague)](https://herbsutter.com/2020/02/15/trip-report-winter-iso-c-standards-meeting-prague/) by Herb Sutter +- [WG21 in Prague - (Partial) Trip Report](https://www.reddit.com/user/InbalL/comments/f5ftop/wg21_in_prague_partial_trip_report/) by Inbal Levi ## 2019 Belfast #### 場所 / 提案 / 会議の結果 From 679db575a23a38501a29ed244f25dff0111521fe Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 8 Mar 2020 16:07:27 +0900 Subject: [PATCH 171/457] Update books.md --- docs/learn/books.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/learn/books.md b/docs/learn/books.md index 0246e34..8b3ba68 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -58,4 +58,11 @@ C++ の学習に役立つ最新の書籍を紹介します。 | [C++17 - The Complete Guide](http://www.cppstd17.com/) | 2019 | C++17 | [目次](http://www.cppstd17.com/) | +## 同人誌 +| 書名 | 発表年 | C++ 規格 | 内容 | +|---------------------------------------------------------------------|------|----------|----------------------------| +| [C++ 標準的インターフェース](https://techbookfest.org/product/6417376601964544) | 2020 | C++17/20 | C++ 標準ライブラリのインターフェースについて解説 | +| [C++20 Modules](https://techbookfest.org/product/46802723143680009) | 2020 | C++20 | C++20 から追加されるモジュールの仕様を解説 | + + From 734448ee2f894ee02cff4dbaa71743ce9eea803c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 8 Mar 2020 16:10:05 +0900 Subject: [PATCH 172/457] fix --- docs/learn/books.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index 8b3ba68..e021866 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -62,7 +62,7 @@ C++ の学習に役立つ最新の書籍を紹介します。 | 書名 | 発表年 | C++ 規格 | 内容 | |---------------------------------------------------------------------|------|----------|----------------------------| | [C++ 標準的インターフェース](https://techbookfest.org/product/6417376601964544) | 2020 | C++17/20 | C++ 標準ライブラリのインターフェースについて解説 | -| [C++20 Modules](https://techbookfest.org/product/46802723143680009) | 2020 | C++20 | C++20 から追加されるモジュールの仕様を解説 | +| [C++20 Modules](https://techbookfest.org/product/4680272314368000) | 2020 | C++20 | C++20 から追加されるモジュールの仕様を解説 | From 6b6fbbb306a08a4f76376d8c34c12a7eae5fb0f6 Mon Sep 17 00:00:00 2001 From: onihusube Date: Sun, 8 Mar 2020 19:13:19 +0900 Subject: [PATCH 173/457] =?UTF-8?q?C++=20=E6=9B=B8=E7=B1=8D=20:=20?= =?UTF-8?q?=E5=90=8C=E4=BA=BA=E8=AA=8C=E3=81=AE=E7=9B=AE=E6=AC=A1=E3=81=A8?= =?UTF-8?q?=E3=82=B5=E3=83=B3=E3=83=97=E3=81=B8=E3=81=AE=E3=83=AA=E3=83=B3?= =?UTF-8?q?=E3=82=AF=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/learn/books.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/learn/books.md b/docs/learn/books.md index e021866..6e574bf 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -61,8 +61,8 @@ C++ の学習に役立つ最新の書籍を紹介します。 ## 同人誌 | 書名 | 発表年 | C++ 規格 | 内容 | |---------------------------------------------------------------------|------|----------|----------------------------| -| [C++ 標準的インターフェース](https://techbookfest.org/product/6417376601964544) | 2020 | C++17/20 | C++ 標準ライブラリのインターフェースについて解説 | -| [C++20 Modules](https://techbookfest.org/product/4680272314368000) | 2020 | C++20 | C++20 から追加されるモジュールの仕様を解説 | +| [C++ 標準的インターフェース](https://techbookfest.org/product/6417376601964544) | 2020 | C++17/20 | C++ 標準ライブラリのインターフェースについて解説。[目次とサンプル](https://github.com/onihusube/books/blob/master/sample/cpp_interface/sample.md) | +| [C++20 Modules](https://techbookfest.org/product/4680272314368000) | 2020 | C++20 | C++20 から追加されるモジュールの仕様を解説。[目次とサンプル](https://github.com/onihusube/books/blob/master/sample/cpp20_modules/sample.md) | From 72e5fd69bc09fdde31543ea641830578369af45b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 8 Mar 2020 19:34:20 +0900 Subject: [PATCH 174/457] Update contributors.md --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index dd9a579..854bfee 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -40,6 +40,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [標準ライブラリ 執筆協力](https://github.com/cppmap/cppmap.docs/issues/28) - [標準ライブラリ 記事加筆](https://github.com/cppmap/cppmap.docs/issues/31) - [標準ライブラリ 記事更新](https://github.com/cppmap/cppmap.docs/pull/34) + - [C++ 書籍 記事加筆](https://github.com/cppmap/cppmap.docs/pull/37) - [@tak0kada](https://twitter.com/tak0kada) さん - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/26) - [@tetzrom](https://twitter.com/tetzrom) さん From 72e5da33a56f38cf2513b27041be06a99fe39c19 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 10 Mar 2020 18:57:18 +0900 Subject: [PATCH 175/457] P0722R3 --- docs/standardization/cpp20.md | 56 ++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 593a6ae..eaaa1e4 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1540,6 +1540,7 @@ int main() ### `std::function` のムーブコンストラクタが `noexcept` に [(P0771R1)](https://wg21.link/P0771R1) 実行時性能を向上させるため、C++20 では `std::function` のムーブコンストラクタが `noexcept` になります。なお、libstdc++ と libc++ では提案時点ですでに実装済みでした。 + ### ``, `` の多くの関数が `constexpr` に [(P0202R3)](https://wg21.link/P0202R3), [(P0879R0)](https://wg21.link/P0879R0) C++20 では `` ヘッダの `std::swap()`, `std::exchange()` および、`` ヘッダで条件を満たす全関数が `constexpr` に対応します。`std::all_of()` や `std::sort()`, `std::reverse()` など、よく使われるアルゴリズム関数が `constexpr` になります。 @@ -1575,4 +1576,57 @@ int main() ``` 7 -``` \ No newline at end of file +``` + + +### デストラクタを自動で呼ばない `delete` 演算子オーバーロード [(P0722R3)](https://wg21.link/P0722R3) +C++17 では、ユーザ定義の `delete` の中でメンバ変数にアクセスしたくても、すでにクラスのデストラクタが呼ばれているため未定義の動作になります。 + +```C++ +#include + +struct Object +{ + std::string m_str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + static void operator delete(void* p) + { + std::cout << "m_str: " + << static_cast(p)->m_str // 未定義の動作 + << '\n'; + ::operator delete(p); + } +}; + +int main() +{ + Object* p = new Object(); + delete p; +} +``` + +C++20 では、`delete` の第二引数を `std::destroying_delete_t` 型にすることで、デストラクタの呼び出しが自動で実行されない挙動に設定できます(この新しい挙動を「destroying operator delete」と呼びます)。`void T::operator delete(T* ptr, std::destroying_delete_t)` のように、第一引数にはクラスへのポインタが渡され、明示的にデストラクタ `ptr->~T()` を呼ぶ必要があります。 + +```C++ +#include + +struct Object +{ + std::string m_str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + static void operator delete(Object* p, std::destroying_delete_t) + { + std::cout << "m_str: " + << p->m_str + << '\n'; + p->~Object(); + ::operator delete(p); + } +}; + +int main() +{ + Object* p = new Object(); + delete p; +} +``` From 4f286bafd37a69aa6f893068928dc39fc001a428 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 10 Mar 2020 18:59:30 +0900 Subject: [PATCH 176/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index eaaa1e4..bc182fd 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1584,6 +1584,7 @@ C++17 では、ユーザ定義の `delete` の中でメンバ変数にアクセ ```C++ #include +#include struct Object { @@ -1609,6 +1610,7 @@ C++20 では、`delete` の第二引数を `std::destroying_delete_t` 型にす ```C++ #include +#include struct Object { From 831b8da1338e48a830e0492d67cf948af24a3e2b Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 10 Mar 2020 19:04:46 +0900 Subject: [PATCH 177/457] Update cpp20.md --- docs/standardization/cpp20.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index bc182fd..5909f28 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1601,7 +1601,7 @@ struct Object int main() { - Object* p = new Object(); + Object* p = new Object; delete p; } ``` @@ -1628,7 +1628,7 @@ struct Object int main() { - Object* p = new Object(); + Object* p = new Object; delete p; } ``` From fd8af6a4b5308d074cd4dfd1d7217357843c5780 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 13 Mar 2020 10:43:32 +0900 Subject: [PATCH 178/457] update --- docs/standardization/meetings.md | 3 ++- mkdocs.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index a60efa9..03e87e4 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -26,7 +26,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 ## 2020 Varna #### 場所 -- [2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア +- 開催見送り / [当初予定 2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア ## 2020 Prague #### 場所 / 提案 @@ -37,6 +37,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [2020-02 Prague ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/) by Bryce Lelbach and others - [Trip report: Winter ISO C++ standards meeting (Prague)](https://herbsutter.com/2020/02/15/trip-report-winter-iso-c-standards-meeting-prague/) by Herb Sutter - [WG21 in Prague - (Partial) Trip Report](https://www.reddit.com/user/InbalL/comments/f5ftop/wg21_in_prague_partial_trip_report/) by Inbal Levi +- [Trip Report: C++ Standards Meeting in Prague, February 2020](https://botondballo.wordpress.com/2020/03/12/trip-report-c-standards-meeting-in-prague-february-2020/) by Botond Ballo ## 2019 Belfast #### 場所 / 提案 / 会議の結果 diff --git a/mkdocs.yml b/mkdocs.yml index ee6931a..3fd4d61 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -79,8 +79,8 @@ nav: - テストフレームワーク: libraries/testing.md - 数学: libraries/math.md - ツール: - - C++ コンパイラ: tools/compilers.md - C++ オンラインコンパイラ: tools/onlinecompilers.md + - C++ コンパイラ: tools/compilers.md - C++ パッケージマネージャ: tools/package-manager.md - C++ コードフォーマッタ: tools/code-formatter.md - 貢献: From 4f3e44743552b8b93efa52996f5c76b90ce00939 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 13 Mar 2020 10:57:51 +0900 Subject: [PATCH 179/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 03e87e4..922d8b3 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -37,6 +37,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [2020-02 Prague ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/) by Bryce Lelbach and others - [Trip report: Winter ISO C++ standards meeting (Prague)](https://herbsutter.com/2020/02/15/trip-report-winter-iso-c-standards-meeting-prague/) by Herb Sutter - [WG21 in Prague - (Partial) Trip Report](https://www.reddit.com/user/InbalL/comments/f5ftop/wg21_in_prague_partial_trip_report/) by Inbal Levi +- [Freestanding in Prague](https://www.reddit.com/r/cpp/comments/f5hgqm/freestanding_in_prague/) by Ben Craig - [Trip Report: C++ Standards Meeting in Prague, February 2020](https://botondballo.wordpress.com/2020/03/12/trip-report-c-standards-meeting-in-prague-february-2020/) by Botond Ballo ## 2019 Belfast From a2493554507c4848d920dcc8840443feef968ced Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 16 Mar 2020 17:52:24 +0900 Subject: [PATCH 180/457] P0553R4 --- docs/standardization/cpp20.md | 111 ++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 5909f28..2d49d1c 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1632,3 +1632,114 @@ int main() delete p; } ``` + + +### ビット操作のための関数 [(P0553R4)](https://wg21.link/P0553R4) +ビット列の左端と右端が循環するようにシフトするビットローテーションや、1 になっているビットを数える popcount などのビット操作命令は、多くの CPU アーキテクチャに搭載されていますが、それに対応する関数は C++17 標準ライブラリには存在せず、`__builtin_popcount` (GCC, Clang) や `__popcnt` (MSVC) のような、処理系が提供する非標準の組み込み関数を使う必要がありました。C++20 では、7 種類のビット操作が標準ライブラリ関数として提供されます。 + +```C++ +namespace std +{ + template + [[nodiscard]] constexpr T rotl(T x, int s) noexcept; + + template + [[nodiscard]] constexpr T rotr(T x, int s) noexcept; + + template + constexpr int countl_zero(T x) noexcept; + + template + constexpr int countl_one(T x) noexcept; + + template + constexpr int countr_zero(T x) noexcept; + + template + constexpr int countr_one(T x) noexcept; + + template + constexpr int popcount(T x) noexcept; +} +``` + +- 引数 `x` を `s` だけ左にビットローテーションさせる `std::rotl(x, s)` + - `s` が負数の場合 `std::rotr(x, -s)` と同等 +- 引数 `x` を `s` だけ右にビットローテーションさせる `std::rotr(x, s)` + - `s` が負数の場合 `std::rotl(x, -s)` と同等 +- `x` の最上位ビットから数えて 0 が連続する個数を返す `std::countl_zero(x)` +- `x` の最上位ビットから数えて 1 が連続する個数を返す `std::countl_one(x)` +- `x` の最下位ビットから数えて 0 が連続する個数を返す `std::countr_zero(x)` +- `x` の最下位ビットから数えて 1 が連続する個数を返す `std::countr_one(x)` +- `x` の 2 進表現に含まれる 1 の個数を返す `std::popcount(x)` + +いずれの関数も、型 `T` が符号なし整数型 (`unsigned char`, `unsigned short`, `unsigned int`, `unsigned long`, `unsigned long long`) の場合のみオーバーロード解決に参加します。 + +```C++ +#include +#include +#include + +void ShowBinary(std::uint16_t x) +{ + for (size_t i = 0; i < 16; ++i) + { + std::cout << ((x >> (15 - i)) & 1); + } + std::cout << '\n'; +} + +int main() +{ + const std::uint16_t x = 0b0001'0110'1110'1111; + + ShowBinary(x); + std::cout << '\n'; + + for (int s = -4; s <= 4; ++s) + { + ShowBinary(std::rotl(x, s)); + } + std::cout << '\n'; + + for (int s = -4; s <= 4; ++s) + { + ShowBinary(std::rotr(x, s)); + } + std::cout << '\n'; + + std::cout << std::countl_zero(x) << '\n'; // 3 + std::cout << std::countl_one(x) << '\n'; // 0 + std::cout << std::countr_zero(x) << '\n'; // 0 + std::cout << std::countr_one(x) << '\n'; // 4 +} +``` +``` +0001011011101111 + +1111000101101110 +1110001011011101 +1100010110111011 +1000101101110111 +0001011011101111 +0010110111011110 +0101101110111100 +1011011101111000 +0110111011110001 + +0110111011110001 +1011011101111000 +0101101110111100 +0010110111011110 +0001011011101111 +1000101101110111 +1100010110111011 +1110001011011101 +1111000101101110 + +3 +0 +0 +4 +``` + From a02c3208b204be33053fb9b23e2fff87c2bd8c54 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 16 Mar 2020 18:00:08 +0900 Subject: [PATCH 181/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 2d49d1c..2f23b17 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1634,7 +1634,7 @@ int main() ``` -### ビット操作のための関数 [(P0553R4)](https://wg21.link/P0553R4) +### ビット循環シフト・ビットカウント関数 [(P0553R4)](https://wg21.link/P0553R4) ビット列の左端と右端が循環するようにシフトするビットローテーションや、1 になっているビットを数える popcount などのビット操作命令は、多くの CPU アーキテクチャに搭載されていますが、それに対応する関数は C++17 標準ライブラリには存在せず、`__builtin_popcount` (GCC, Clang) や `__popcnt` (MSVC) のような、処理系が提供する非標準の組み込み関数を使う必要がありました。C++20 では、7 種類のビット操作が標準ライブラリ関数として提供されます。 ```C++ From c0aa9821fa461d382cabaefdb77c776dec12c15f Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 24 Mar 2020 11:03:07 +0900 Subject: [PATCH 182/457] update --- docs/articles/type-traits.md | 8 ++++++++ docs/standardization/meetings.md | 3 ++- mkdocs.yml | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 docs/articles/type-traits.md diff --git a/docs/articles/type-traits.md b/docs/articles/type-traits.md new file mode 100644 index 0000000..0673fd6 --- /dev/null +++ b/docs/articles/type-traits.md @@ -0,0 +1,8 @@ +description: C++ 型特性の早見表 + +# C++ 型特性 早見表 + + + + + diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 922d8b3..bc98723 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -29,9 +29,10 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - 開催見送り / [当初予定 2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア ## 2020 Prague -#### 場所 / 提案 +#### 場所 / 提案 / 会議の結果 - [2020-02-10 to 15](https://wg21.link/n4817) / プラハ, チェコ - [JTC1/SC22/WG21 - Papers 2020 mailing2020-01 pre-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-01) +- [JTC1/SC22/WG21 - Papers 2020 mailing2020-03 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-03) #### 参加報告 - [2020-02 Prague ISO C++ Committee Trip Report](https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/) by Bryce Lelbach and others diff --git a/mkdocs.yml b/mkdocs.yml index 3fd4d61..698c0bc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,6 +66,7 @@ nav: - 標準ライブラリの読みと名前の由来: articles/how-to-read-libraries.md - IEEE 754 演算のルール: articles/ieee754-arithmetic.md - C++ 関連の略語: articles/acronyms.md + - C++ 型特性 早見表: articles/type-traits.md - 学習: - C++ 書籍: learn/books.md - C++ オンライン資料: learn/online-resources.md From 2be984b41aef6c57a885786f7c4247c6941245fe Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 25 Mar 2020 22:18:34 +0900 Subject: [PATCH 183/457] Update index.md --- docs/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.md b/docs/index.md index 16eb9a6..f24d7f5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -32,3 +32,5 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - minachun - Fuyutsubaki - (匿名 😊) +- (匿名 🐝) +- (匿名 🐠) From ca56aff32f8005bba709a951632d015e304c4a1f Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 29 Mar 2020 10:48:47 +0900 Subject: [PATCH 184/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index bc98723..aeedccd 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -40,6 +40,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [WG21 in Prague - (Partial) Trip Report](https://www.reddit.com/user/InbalL/comments/f5ftop/wg21_in_prague_partial_trip_report/) by Inbal Levi - [Freestanding in Prague](https://www.reddit.com/r/cpp/comments/f5hgqm/freestanding_in_prague/) by Ben Craig - [Trip Report: C++ Standards Meeting in Prague, February 2020](https://botondballo.wordpress.com/2020/03/12/trip-report-c-standards-meeting-in-prague-february-2020/) by Botond Ballo +- [Kafka’s uncle spends a week with Les Booloise: Prague trip report](https://hatcat.com/?p=119) by Guy Davidson ## 2019 Belfast #### 場所 / 提案 / 会議の結果 From 444309c0533ce39520d1461b5035859682f878f6 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 30 Mar 2020 16:27:55 +0900 Subject: [PATCH 185/457] update --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index aeedccd..3edda52 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -41,6 +41,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [Freestanding in Prague](https://www.reddit.com/r/cpp/comments/f5hgqm/freestanding_in_prague/) by Ben Craig - [Trip Report: C++ Standards Meeting in Prague, February 2020](https://botondballo.wordpress.com/2020/03/12/trip-report-c-standards-meeting-in-prague-february-2020/) by Botond Ballo - [Kafka’s uncle spends a week with Les Booloise: Prague trip report](https://hatcat.com/?p=119) by Guy Davidson +- [Trip report: February 2020 ISO C++ committee meeting, Prague](https://timur.audio/trip-report-february-2020-iso-c-committee-meeting-prague) by Timur Doumler ## 2019 Belfast #### 場所 / 提案 / 会議の結果 From 12a81a36cc4d30420769b5caa187f49b3d4ddc48 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 1 Apr 2020 19:42:28 +0900 Subject: [PATCH 186/457] Create aprilfool.md --- docs/standardization/cpp20/aprilfool.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/standardization/cpp20/aprilfool.md diff --git a/docs/standardization/cpp20/aprilfool.md b/docs/standardization/cpp20/aprilfool.md new file mode 100644 index 0000000..e9cc0ca --- /dev/null +++ b/docs/standardization/cpp20/aprilfool.md @@ -0,0 +1,3 @@ +# April Fool + +本当の C++20 の新機能は[こちら](https://cppmap.github.io/standardization/cpp20/) From 434a01582cd6fa38393879e1b1a4967f6a2d55ed Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 13 Apr 2020 13:15:21 +0900 Subject: [PATCH 187/457] Update onlinecompilers.md --- docs/tools/onlinecompilers.md | 52 ++++++++++++++--------------------- 1 file changed, 21 insertions(+), 31 deletions(-) diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index 2c5b13a..ac0f721 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -93,8 +93,8 @@ int main() ``` -### Stensal -[Stensal](https://segfault.stensal.com/) は、C, C++ プログラムを実行して、セグメンテーション違反などメモリに関する問題が発生したときに、その箇所と原因をわかりやすく表示するオンラインコンパイラです。バッファオーバーラン、Null ポインタの参照外し、未初期化変数の利用などの問題を明らかにします。実装には Wandbox が使われています。 +### cee.studio +[cee.studio](https://www.cee.studio/) は、C, C++ プログラムを実行して、セグメンテーション違反などメモリに関する問題が発生したときに、その箇所と原因をわかりやすく表示する機能を持つオンラインコンパイラです。バッファオーバーラン、Null ポインタの参照外し、未初期化変数の利用などの問題を明らかにします。オンライン IDE で「Run in Guarrail」モードで実行することでメモリのデバッグを行えます。 入力例 ```C++ @@ -110,33 +110,23 @@ int main() 出力例 ``` -=========== Start of #0 stensal runtime message =========== - - Runtime error: **[out-of-bounds read]** - Continuing execution can cause undefined behavior, abort! - - ```stensal-diagnostic-info -- -- Reading 4 bytes from 0x937c414 will read undefined values. -- -- The memory-space-to-be-read (start:0x937c414, size:3 bytes) is bound to 's' at -- file:/prog.cc::5, 0 -- -- 0x937c414 0x937c416 -- +------------------------------+ -- | the memory-space-to-be-read |...... -- +------------------------------+ -- ^~~~~~~~~~ -- the read starts at the memory begin. -- -- Stack trace (most recent call first) of the read. -- [1] file:/musl-1.1.10/src/string/strlen.c::91, 3 -- [2] @[unknown_id 291] -- [3] file:/prog.cc::7, 2 -- [4] [libc-start-main] -- - ``` -error code (56,213) - -============ End of #0 stensal runtime message ============ + Memory access error: reading from the outside of a memory space; abort execution. + # Reading 4 bytes from 0x981cdd4 will read undefined values. + # + # The memory-space-to-be-read (start:0x981cdd4, size:3 bytes) is bound to 's' at + # file:/prog.cc::5, 0 + # + # 0x981cdd4 0x981cdd6 + # +------------------------------+ + # | the memory-space-to-be-read |...... + # +------------------------------+ + # ^~~~~~~~~~ + # the read starts at the memory-space begin. + # + # Stack trace (most recent call first) of the read. + # [0] file:/musl-1.1.10/src/string/strlen.c::91, 3 + # [1] unknown_location (report this ::244) + # [2] file:/prog.cc::7, 5 + # [3] [libc-start-main] +Segmentation fault ``` From a3530ba58ef3a6db3a8ca83e60cdeb3a3199f2ec Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 16 Apr 2020 13:58:35 +0900 Subject: [PATCH 188/457] Update working-drafts.md --- docs/standardization/working-drafts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index 79d6179..43c00b4 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -4,4 +4,4 @@ description: C++ 規格のワーキングドラフトです - [C++11 最終ワーキングドラフト (N3337)](https://wg21.link/std11) | [HTML 版](https://timsong-cpp.github.io/cppwp/n3337/) - [C++14 最終ワーキングドラフト (N4140)](https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4140/) - [C++17 最終ワーキングドラフト (N4659)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4659/) -- [最新の C++20 ワーキングドラフト (N4849)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4849.pdf) | [HTML 版](http://eel.is/c++draft/) +- [最新の C++20 ワーキングドラフト (N4860)](http://wg21.link/n4860) | [HTML 版](http://eel.is/c++draft/) From 2cd9c6b0e0004212933b78883bd8f048f6d7c387 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 16 Apr 2020 14:19:53 +0900 Subject: [PATCH 189/457] Update working-drafts.md --- docs/standardization/working-drafts.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index 43c00b4..9728634 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -1,7 +1,13 @@ description: C++ 規格のワーキングドラフトです # C++ 規格 -- [C++11 最終ワーキングドラフト (N3337)](https://wg21.link/std11) | [HTML 版](https://timsong-cpp.github.io/cppwp/n3337/) -- [C++14 最終ワーキングドラフト (N4140)](https://github.com/cplusplus/draft/blob/master/papers/n4140.pdf?raw=true) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4140/) -- [C++17 最終ワーキングドラフト (N4659)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf) | [HTML 版](https://timsong-cpp.github.io/cppwp/n4659/) -- [最新の C++20 ワーキングドラフト (N4860)](http://wg21.link/n4860) | [HTML 版](http://eel.is/c++draft/) + +| バージョン (PDF リンク) | 日付 | HTML 版 | +|-------------------------------------------------------|------------|----------------------------------------------------| +| [C++11 最終ワーキングドラフト (N3337)](http://wg21.link/n3337) | 2012-01-16 | [HTML](https://timsong-cpp.github.io/cppwp/n3337/) | +| [C++14 最終ワーキングドラフト (N4140)](http://wg21.link/n4140) | 2014-10-07 | [HTML](https://timsong-cpp.github.io/cppwp/n4140/) | +| [C++17 最終ワーキングドラフト (N4659)](http://wg21.link/n4659) | 2017-03-21 | [HTML](https://timsong-cpp.github.io/cppwp/n4659/) | +| [C++20 最終ワーキングドラフト (N4860)](http://wg21.link/n4860) | 2020-03-31 | [HTML](https://timsong-cpp.github.io/cppwp/n4861/) | +| [最新の C++23 ワーキングドラフト (N4861)](http://wg21.link/n4861) | 2020-04-01 | [HTML](http://eel.is/c++draft/) | + +N4860 と N4861 は一部文書レイアウトを除き内容は同じです。 From ef8b283f3eade7908d4054f0f6611fd516414531 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 16 Apr 2020 15:10:42 +0900 Subject: [PATCH 190/457] =?UTF-8?q?C++=20=E8=A6=8F=E6=A0=BC=E6=9B=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/standardization/working-drafts.md | 32 ++++++++++++++++++-------- mkdocs.yml | 2 +- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index 9728634..6c35420 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -1,13 +1,27 @@ description: C++ 規格のワーキングドラフトです -# C++ 規格 +# C++ 規格書 -| バージョン (PDF リンク) | 日付 | HTML 版 | -|-------------------------------------------------------|------------|----------------------------------------------------| -| [C++11 最終ワーキングドラフト (N3337)](http://wg21.link/n3337) | 2012-01-16 | [HTML](https://timsong-cpp.github.io/cppwp/n3337/) | -| [C++14 最終ワーキングドラフト (N4140)](http://wg21.link/n4140) | 2014-10-07 | [HTML](https://timsong-cpp.github.io/cppwp/n4140/) | -| [C++17 最終ワーキングドラフト (N4659)](http://wg21.link/n4659) | 2017-03-21 | [HTML](https://timsong-cpp.github.io/cppwp/n4659/) | -| [C++20 最終ワーキングドラフト (N4860)](http://wg21.link/n4860) | 2020-03-31 | [HTML](https://timsong-cpp.github.io/cppwp/n4861/) | -| [最新の C++23 ワーキングドラフト (N4861)](http://wg21.link/n4861) | 2020-04-01 | [HTML](http://eel.is/c++draft/) | +C++11 以降は規格書と同等の内容のワーキングドラフトが無償で公開されています。 +公式の規格書は ISO の Web サイトから購入できます。 -N4860 と N4861 は一部文書レイアウトを除き内容は同じです。 +| バージョン | ワーキングドラフト | 公式規格書 | ページ数 | 日付 | +|-------|--------------------------------------------------------------------------------------------|---------------------------------------------------------------|------|---------| +| C++98 | | [ISO/IEC 14882:1998](https://www.iso.org/standard/25845.html) | 732 | 1998-09 | +| C++03 | N1557 | [ISO/IEC 14882:2003](https://www.iso.org/standard/38110.html) | 757 | 2003-10 | +| C++11 | [N3337 (PDF)](http://wg21.link/n3337) / [HTML](https://timsong-cpp.github.io/cppwp/n3337/) | [ISO/IEC 14882:2011](https://www.iso.org/standard/50372.html) | 1338 | 2011-09 | +| C++14 | [N4140 (PDF)](http://wg21.link/n4140) / [HTML](https://timsong-cpp.github.io/cppwp/n4140/) | [ISO/IEC 14882:2014](https://www.iso.org/standard/64029.html) | 1358 | 2014-12 | +| C++17 | [N4659 (PDF)](http://wg21.link/n4659) / [HTML](https://timsong-cpp.github.io/cppwp/n4659/) | [ISO/IEC 14882:2017](https://www.iso.org/standard/68564.html) | 1605 | 2017-12 | +| C++20 | [N4860 (PDF)](http://wg21.link/n4860) / [HTML](https://timsong-cpp.github.io/cppwp/n4861/) | (未発表) | ? | 2020-?? | +| C++23 | [N4861 (PDF)](http://wg21.link/n4861) / [HTML](http://eel.is/c++draft/)
    ※最終版ではない | (未発表) | ? | 2023-?? | + +- N4860 と N4861 は一部文書レイアウトを除き内容は同じです。 +- C++03 は日本語版 (JIS 規格) を無償で閲覧できます + - [日本産業標準調査会:データベース検索-JIS検索](https://www.jisc.go.jp/app/jis/general/GnrJISSearch.html) にて「X3014」を検索します + +## 参考文献 + +- History of C++ + https://en.cppreference.com/w/cpp/language/history +- C++ 各バージョン毎の規格書 + https://onihusube.hatenablog.com/entry/2018/07/04/014257 diff --git a/mkdocs.yml b/mkdocs.yml index 698c0bc..c565979 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -56,7 +56,7 @@ nav: - C++23 以降に向けた提案: standardization/cppx.md - 標準化会議: standardization/meetings.md - 処理系の対応状況: standardization/status.md - - 規格ドラフト: standardization/working-drafts.md + - C++ 規格書: standardization/working-drafts.md - C++ 標準ライブラリ: standardization/header.md - 記事: - コメントアウトのトリック: articles/comment-tricks.md From 6fdb3dbd27477406957793d6f453d10353ed7f2e Mon Sep 17 00:00:00 2001 From: yoh Date: Sat, 18 Apr 2020 00:23:00 +0900 Subject: [PATCH 191/457] =?UTF-8?q?working-drafts.md:=20s/=E6=9C=AA?= =?UTF-8?q?=E7=99=BA=E8=A1=A8/=E6=9C=AA=E7=99=BA=E8=A1=8C/g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 一般にISO標準では Publication/発行 と呼ばれるため、用語を微調整しました。 https://ja.wikipedia.org/wiki/%E5%9B%BD%E9%9A%9B%E6%A8%99%E6%BA%96%E5%8C%96%E6%A9%9F%E6%A7%8B --- docs/standardization/working-drafts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index 6c35420..5079197 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -12,8 +12,8 @@ C++11 以降は規格書と同等の内容のワーキングドラフトが無 | C++11 | [N3337 (PDF)](http://wg21.link/n3337) / [HTML](https://timsong-cpp.github.io/cppwp/n3337/) | [ISO/IEC 14882:2011](https://www.iso.org/standard/50372.html) | 1338 | 2011-09 | | C++14 | [N4140 (PDF)](http://wg21.link/n4140) / [HTML](https://timsong-cpp.github.io/cppwp/n4140/) | [ISO/IEC 14882:2014](https://www.iso.org/standard/64029.html) | 1358 | 2014-12 | | C++17 | [N4659 (PDF)](http://wg21.link/n4659) / [HTML](https://timsong-cpp.github.io/cppwp/n4659/) | [ISO/IEC 14882:2017](https://www.iso.org/standard/68564.html) | 1605 | 2017-12 | -| C++20 | [N4860 (PDF)](http://wg21.link/n4860) / [HTML](https://timsong-cpp.github.io/cppwp/n4861/) | (未発表) | ? | 2020-?? | -| C++23 | [N4861 (PDF)](http://wg21.link/n4861) / [HTML](http://eel.is/c++draft/)
    ※最終版ではない | (未発表) | ? | 2023-?? | +| C++20 | [N4860 (PDF)](http://wg21.link/n4860) / [HTML](https://timsong-cpp.github.io/cppwp/n4861/) | (未発行) | ? | 2020-?? | +| C++23 | [N4861 (PDF)](http://wg21.link/n4861) / [HTML](http://eel.is/c++draft/)
    ※最終版ではない | (未発行) | ? | 2023-?? | - N4860 と N4861 は一部文書レイアウトを除き内容は同じです。 - C++03 は日本語版 (JIS 規格) を無償で閲覧できます From fd50c3c8ea9a5c7be831caf2b33b42152e03b307 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 18 Apr 2020 00:27:24 +0900 Subject: [PATCH 192/457] Update contributors.md --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 854bfee..0e9534d 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -52,6 +52,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [@yohhoy](https://twitter.com/yohhoy) さん - [記事改善案 提供](https://twitter.com/yohhoy/status/1106950996192747521) - [C++23 以降に向けた提案 情報提供](https://github.com/cppmap/cppmap.docs/pull/32) + - [C++ 規格書 記事更新](https://github.com/cppmap/cppmap.docs/pull/38) - [@yuji_n_dispair](https://twitter.com/yuji_n_dispair) さん - [国内の勉強会 情報加筆](https://github.com/cppmap/cppmap.docs/pull/29) - [@yumetodo](https://twitter.com/yumetodo) さん From 77e79b73ab8173e4fef6951022c8a53aec6aa94c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 21 Apr 2020 17:20:39 +0900 Subject: [PATCH 193/457] Update header.md --- docs/standardization/header.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 723a04b..16a5f08 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -19,7 +19,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<any>](http://eel.is/c++draft/any.synop)|[en](https://en.cppreference.com/w/cpp/header/any) / [jp](https://ja.cppreference.com/w/cpp/header/any) / [cpprefjp](https://cpprefjp.github.io/reference/any.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/any) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/any) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/any)|since C++17| |[<array>](http://eel.is/c++draft/array.syn)|[en](https://en.cppreference.com/w/cpp/header/array) / [jp](https://ja.cppreference.com/w/cpp/header/array) / [cpprefjp](https://cpprefjp.github.io/reference/array.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/array) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/array) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/array)|since C++11| |[<atomic>](http://eel.is/c++draft/atomics.syn)|[en](https://en.cppreference.com/w/cpp/header/atomic) / [jp](https://ja.cppreference.com/w/cpp/header/atomic) / [cpprefjp](https://cpprefjp.github.io/reference/atomic.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/atomic) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/atomic) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/atomic)|since C++11| -|[<barrier>](http://eel.is/c++draft/barrier.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<barrier>](http://eel.is/c++draft/barrier.syn)|en / jp / cpprefjp|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/barrier) / MSVC|since C++20| |[<bit>](http://eel.is/c++draft/bit.syn)|[en](https://en.cppreference.com/w/cpp/header/bit) / [jp](https://ja.cppreference.com/w/cpp/header/bit) / [cpprefjp](https://cpprefjp.github.io/reference/bit.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bit) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/bit) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bit)|since C++20| |[<bitset>](http://eel.is/c++draft/bitset.syn)|[en](https://en.cppreference.com/w/cpp/header/bitset) / [jp](https://ja.cppreference.com/w/cpp/header/bitset) / [cpprefjp](https://cpprefjp.github.io/reference/bitset.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bitset) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/bitset) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bitset)|| |[<cassert>](http://eel.is/c++draft/cassert.syn)|[en](https://en.cppreference.com/w/cpp/header/cassert) / [jp](https://ja.cppreference.com/w/cpp/header/cassert) / [cpprefjp](https://cpprefjp.github.io/reference/cassert.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cassert) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cassert) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cassert)|| @@ -35,9 +35,9 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<cmath>](http://eel.is/c++draft/cmath.syn)|[en](https://en.cppreference.com/w/cpp/header/cmath) / [jp](https://ja.cppreference.com/w/cpp/header/cmath) / [cpprefjp](https://cpprefjp.github.io/reference/cmath.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cmath) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cmath) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cmath)|| |[<compare>](http://eel.is/c++draft/compare.syn)|[en](https://en.cppreference.com/w/cpp/header/compare) / [jp](https://ja.cppreference.com/w/cpp/header/compare) / [cpprefjp](https://cpprefjp.github.io/reference/compare.html)|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/compare) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/compare)|since C++20| |[<complex>](http://eel.is/c++draft/complex.syn)|[en](https://en.cppreference.com/w/cpp/header/complex) / [jp](https://ja.cppreference.com/w/cpp/header/complex) / [cpprefjp](https://cpprefjp.github.io/reference/complex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/complex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/complex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/complex)|| -|[<concepts>](http://eel.is/c++draft/concepts.syn)|[en](https://en.cppreference.com/w/cpp/header/concepts) / [jp](https://ja.cppreference.com/w/cpp/header/concepts) / [cpprefjp](https://cpprefjp.github.io/reference/concepts.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/concepts) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/concepts)|since C++20| +|[<concepts>](http://eel.is/c++draft/concepts.syn)|[en](https://en.cppreference.com/w/cpp/header/concepts) / [jp](https://ja.cppreference.com/w/cpp/header/concepts) / [cpprefjp](https://cpprefjp.github.io/reference/concepts.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/concepts) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/concepts) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/concepts)|since C++20| |[<condition_variable>](http://eel.is/c++draft/condition.variable.syn)|[en](https://en.cppreference.com/w/cpp/header/condition_variable) / [jp](https://ja.cppreference.com/w/cpp/header/condition_variable) / [cpprefjp](https://cpprefjp.github.io/reference/condition_variable.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/condition_variable) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/condition_variable) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/condition_variable)|since C++11| -|[<coroutine>](http://eel.is/c++draft/coroutine.syn)|[en](https://en.cppreference.com/w/cpp/header/coroutine) / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<coroutine>](http://eel.is/c++draft/coroutine.syn)|[en](https://en.cppreference.com/w/cpp/header/coroutine) / jp / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/coroutine) / libc++ / MSVC|since C++20| |[<csetjmp>](http://eel.is/c++draft/csetjmp.syn)|[en](https://en.cppreference.com/w/cpp/header/csetjmp) / [jp](https://ja.cppreference.com/w/cpp/header/csetjmp) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csetjmp) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/csetjmp) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csetjmp)|| |[<csignal>](http://eel.is/c++draft/csignal.syn)|[en](https://en.cppreference.com/w/cpp/header/csignal) / [jp](https://ja.cppreference.com/w/cpp/header/csignal) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csignal) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/csignal) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csignal)|| |[<cstdarg>](http://eel.is/c++draft/cstdarg.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdarg) / [jp](https://ja.cppreference.com/w/cpp/header/cstdarg) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdarg) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstdarg) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdarg)|| @@ -66,7 +66,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<iostream>](http://eel.is/c++draft/iostream.syn)|[en](https://en.cppreference.com/w/cpp/header/iostream) / [jp](https://ja.cppreference.com/w/cpp/header/iostream) / [cpprefjp](https://cpprefjp.github.io/reference/iostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iostream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iostream)|| |[<istream>](http://eel.is/c++draft/istream.syn)|[en](https://en.cppreference.com/w/cpp/header/istream) / [jp](https://ja.cppreference.com/w/cpp/header/istream) / [cpprefjp](https://cpprefjp.github.io/reference/istream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/istream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/istream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/istream)|| |[<iterator>](http://eel.is/c++draft/iterator.synopsis)|[en](https://en.cppreference.com/w/cpp/header/iterator) / [jp](https://ja.cppreference.com/w/cpp/header/iterator) / [cpprefjp](https://cpprefjp.github.io/reference/iterator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iterator) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iterator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iterator)|| -|[<latch>](http://eel.is/c++draft/latch.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<latch>](http://eel.is/c++draft/latch.syn)|[en](https://en.cppreference.com/w/cpp/header/latch) / jp / cpprefjp|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/latch) / MSVC|since C++20| |[<limits>](http://eel.is/c++draft/limits.syn)|[en](https://en.cppreference.com/w/cpp/header/limits) / [jp](https://ja.cppreference.com/w/cpp/header/limits) / [cpprefjp](https://cpprefjp.github.io/reference/limits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/limits) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/limits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/limits)|| |[<list>](http://eel.is/c++draft/list.syn)|[en](https://en.cppreference.com/w/cpp/header/list) / [jp](https://ja.cppreference.com/w/cpp/header/list) / [cpprefjp](https://cpprefjp.github.io/reference/list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/list) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/list)|| |[<locale>](http://eel.is/c++draft/locale.syn)|[en](https://en.cppreference.com/w/cpp/header/locale) / [jp](https://ja.cppreference.com/w/cpp/header/locale) / [cpprefjp](https://cpprefjp.github.io/reference/locale.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/locale) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/locale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/locale)|| @@ -85,7 +85,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<ratio>](http://eel.is/c++draft/ratio.syn)|[en](https://en.cppreference.com/w/cpp/header/ratio) / [jp](https://ja.cppreference.com/w/cpp/header/ratio) / [cpprefjp](https://cpprefjp.github.io/reference/ratio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ratio) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ratio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ratio)|since C++11| |[<regex>](http://eel.is/c++draft/re.syn)|[en](https://en.cppreference.com/w/cpp/header/regex) / [jp](https://ja.cppreference.com/w/cpp/header/regex) / [cpprefjp](https://cpprefjp.github.io/reference/regex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/regex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/regex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/regex)|since C++11| |[<scoped_allocator>](http://eel.is/c++draft/allocator.adaptor.syn)|[en](https://en.cppreference.com/w/cpp/header/scoped_allocator) / [jp](https://ja.cppreference.com/w/cpp/header/scoped_allocator) / [cpprefjp](https://cpprefjp.github.io/reference/scoped_allocator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/scoped_allocator) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/scoped_allocator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/scoped_allocator)|since C++11| -|[<semaphore>](http://eel.is/c++draft/semaphore.syn)|en / jp / cpprefjp|libstdc++ / libc++ / MSVC|since C++20| +|[<semaphore>](http://eel.is/c++draft/semaphore.syn)|[en](https://en.cppreference.com/w/cpp/header/semaphore) / jp / cpprefjp|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/semaphore) / MSVC|since C++20| |[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| |[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| |[<source_location>](http://eel.is/c++draft/source.location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / [cpprefjp](https://cpprefjp.github.io/reference/source_location.html)|libstdc++ / libc++ / MSVC|since C++20| @@ -93,7 +93,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<sstream>](http://eel.is/c++draft/sstream.syn)|[en](https://en.cppreference.com/w/cpp/header/sstream) / [jp](https://ja.cppreference.com/w/cpp/header/sstream) / [cpprefjp](https://cpprefjp.github.io/reference/sstream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/sstream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/sstream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/sstream)|| |[<stack>](http://eel.is/c++draft/stack.syn)|[en](https://en.cppreference.com/w/cpp/header/stack) / [jp](https://ja.cppreference.com/w/cpp/header/stack) / [cpprefjp](https://cpprefjp.github.io/reference/stack.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stack) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/stack) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stack)|| |[<stdexcept>](http://eel.is/c++draft/stdexcept.syn)|[en](https://en.cppreference.com/w/cpp/header/stdexcept) / [jp](https://ja.cppreference.com/w/cpp/header/stdexcept) / [cpprefjp](https://cpprefjp.github.io/reference/stdexcept.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stdexcept) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/stdexcept) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/stdexcept)|| -|[<stop_token>](http://eel.is/c++draft/thread.stoptoken.syn)|[en](https://en.cppreference.com/w/cpp/header/stop_token) / jp / [cpprefjp](https://cpprefjp.github.io/reference/stop_token.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stop_token) / libc++ / MSVC|since C++20| +|[<stop_token>](http://eel.is/c++draft/thread.stoptoken.syn)|[en](https://en.cppreference.com/w/cpp/header/stop_token) / [jp](https://ja.cppreference.com/w/cpp/header/stop_token) / [cpprefjp](https://cpprefjp.github.io/reference/stop_token.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/stop_token) / libc++ / MSVC|since C++20| |[<streambuf>](http://eel.is/c++draft/streambuf.syn)|[en](https://en.cppreference.com/w/cpp/header/streambuf) / [jp](https://ja.cppreference.com/w/cpp/header/streambuf) / [cpprefjp](https://cpprefjp.github.io/reference/streambuf.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/streambuf) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/streambuf) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/streambuf)|| |[<string>](http://eel.is/c++draft/string.syn)|[en](https://en.cppreference.com/w/cpp/header/string) / [jp](https://ja.cppreference.com/w/cpp/header/string) / [cpprefjp](https://cpprefjp.github.io/reference/string.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/string) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string)|| |[<string_view>](http://eel.is/c++draft/string.view.synop)|[en](https://en.cppreference.com/w/cpp/header/string_view) / [jp](https://ja.cppreference.com/w/cpp/header/string_view) / [cpprefjp](https://cpprefjp.github.io/reference/string_view.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/string_view) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/string_view) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/string_view)|since C++17| From d836077e31e6fc2b8ffeee15020c246c7c97109c Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 28 Apr 2020 18:05:49 +0900 Subject: [PATCH 194/457] Update boost.md --- docs/libraries/boost.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/libraries/boost.md b/docs/libraries/boost.md index 1971b74..ec06104 100644 --- a/docs/libraries/boost.md +++ b/docs/libraries/boost.md @@ -4,6 +4,7 @@ description: Boost C++ Libraries のバージョン履歴 | バージョン / リリースノート | リリース日 | 新しく追加されたライブラリ | |------------------------------------------------------------------------------------------------------------------------------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [1.73.0](https://www.boost.org/users/history/version_1_73_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_73_0.html) | 2020-04-28 | [Nowide](https://www.boost.org/libs/nowide/), [StaticString](https://www.boost.org/libs/static_string/) | | [1.72.0](https://www.boost.org/users/history/version_1_72_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_72_0.html) | 2019-12-11 | | | [1.71.0](https://www.boost.org/users/history/version_1_71_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_71_0.html) | 2019-08-19 | [Variant2](https://www.boost.org/libs/variant2/) | | [1.70.0](https://www.boost.org/users/history/version_1_70_0.html) / [日本語訳](https://boostjp.github.io/document/version/1_70_0.html) | 2019-04-12 | [Outcome](https://www.boost.org/libs/outcome/), [Histogram](https://www.boost.org/libs/histogram/) | From f3c74dfbf290f71f4cb39e87b03ff6536d2af076 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 1 May 2020 20:52:17 +0900 Subject: [PATCH 195/457] Update cpp20.md --- docs/standardization/cpp20.md | 94 +++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 2f23b17..1d5e37c 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -700,6 +700,58 @@ prog.cc:27:2: warning: ignoring return value of function declared with 'nodiscar ``` +### 指示付き初期化子 [(P0329R4)](https://wg21.link/P0329R4) +C++20 から、集成体において、メンバ変数名を指定した初期化(指示付き初期化子を用いた初期化: "Designated Initialization" )ができるようになります。C 言語 (C99) にも同様の機能がありますが、C++20 では C99 と比較して以下のような制約が追加されています。 + +- (a) 指示子の順番はメンバの宣言順と同じである必要がある +- (b) 指示付き初期化子と通常の初期化子の混在はできない +- (c) 指示付き初期化は重複できない +- (d) 指示付き初期化のネストはできない +- (e) 配列の指示付き初期化はできない + +また、初期化子の評価順序が左から右であることが保証されます。 + +```C++ +#include + +struct Point +{ + int x, y; +}; + +struct Item +{ + std::string name; + int id = -1; + int count = 1; +}; + +void F(Point) {} + +int main() +{ + Point p1 = { .x = 10, .y = 20 }; // OK + Point p2{ .x = 10, .y = 20 }; // OK + Point p3 = { .x = 10 }; // OK: y は 0 に初期化される + Point p4 = { .y = 20 }; // OK: x は 0 に初期化される + F({ .x = 10, .y = 20 }); // OK + + //Point p4 = { .y = 20, .x = 30 }; // コンパイルエラー: (a) 指示子の順番がメンバの宣言順と異なる + //Point p5 = { .x = 20, 40 }; // コンパイルエラー: (b) 指示付き初期化子と通常の初期化子は混在できない + //Point p6 = { .x = 20, .x = 30, .y = 30 }; // コンパイルエラー: (c) 指示付き初期化子は重複できない + + Item i1{ .name = "shield", .id = 30, .count = 100 }; // OK + Item i2{ .id = 0 }; // OK: name は {} で初期化、count は 1 で初期化 + + //Item i3{ .pos.x = 10, .pos.y = 40 }; // コンパイルエラー: (d) 指示付き初期化のネストはできない + + //int arr[3] = {[1] = 5}; // コンパイルエラー: (e) 配列の指示付き初期化はできない +} +``` + +従来までの `Point p{}`, `Item i{}` のような集成体初期化を「指示付き初期化子が 0 個の初期化」と考えると、新しい挙動も理解しやすくなります。 + + ## 標準ライブラリ ### 文字列の先頭や末尾が、ある文字列と一致するか判定 [(P0457R2)](https://wg21.link/P0457R2) @@ -1743,3 +1795,45 @@ int main() 4 ``` + +### 組み込み配列から `std::array` を作成する `std::to_array()` [(P0325R4)](https://wg21.link/P0325R4) +C++17 で導入された型推論ガイドによって、`std::array` で次のようなコードが書けるようになりました。 + +```C++ +#include + +int main() +{ + auto a = std::array{ 1, 2, 3 }; // std::array +} +``` + +しかし、`"hello"` や `int[4]` のような組み込み配列から `std::array` や `std::array` を作成する方法はありませんでした。 + +```C++ +#include + +int main() +{ + auto a1 = std::array{ "hello" }; // std::array + + int xs[4] = { 1,2,3,4 }; + auto a2 = std::array{ xs }; // std::array +} +``` + +C++20 では、組み込み配列の左辺値または右辺値を引数にとり、値をコピー(ムーブ)して新しい `std::array` を作成する補助関数 `std::to_array()` が追加され、組み込み配列からの `std::array` の作成が簡単になりました。 + +```C++ +#include + +int main() +{ + auto a1 = std::to_array("hello"); // std::array + + int xs[4] = { 1,2,3,4 }; + auto a2 = std::to_array(xs); // std::array + + auto a3 = std::to_array({ 1, 2 }); // std::array +} +``` From ac1700cd53d4ff9d7cc013fe244c6f7be06f12da Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 1 May 2020 21:04:15 +0900 Subject: [PATCH 196/457] Update cpp20.md --- docs/standardization/cpp20.md | 37 +++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 1d5e37c..15827fc 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -700,8 +700,8 @@ prog.cc:27:2: warning: ignoring return value of function declared with 'nodiscar ``` -### 指示付き初期化子 [(P0329R4)](https://wg21.link/P0329R4) -C++20 から、集成体において、メンバ変数名を指定した初期化(指示付き初期化子を用いた初期化: "Designated Initialization" )ができるようになります。C 言語 (C99) にも同様の機能がありますが、C++20 では C99 と比較して以下のような制約が追加されています。 +### 指示付き初期化子による集成体の初期化 [(P0329R4)](https://wg21.link/P0329R4) +C++20 から、集成体において、メンバ変数名を指定した初期化(指示付き初期化子を用いた初期化: "Designated Initialization" )ができるようになります。C 言語 (C99) にも同様の機能がありますが、C++20 では C99 の指示付き初期化子と比較して以下のような制約が追加されています。 - (a) 指示子の順番はメンバの宣言順と同じである必要がある - (b) 指示付き初期化子と通常の初期化子の混在はできない @@ -736,20 +736,41 @@ int main() Point p4 = { .y = 20 }; // OK: x は 0 に初期化される F({ .x = 10, .y = 20 }); // OK - //Point p4 = { .y = 20, .x = 30 }; // コンパイルエラー: (a) 指示子の順番がメンバの宣言順と異なる - //Point p5 = { .x = 20, 40 }; // コンパイルエラー: (b) 指示付き初期化子と通常の初期化子は混在できない - //Point p6 = { .x = 20, .x = 30, .y = 30 }; // コンパイルエラー: (c) 指示付き初期化子は重複できない + Point p4 = { .y = 20, .x = 30 }; // コンパイルエラー: (a) 指示子の順番がメンバの宣言順と異なる + Point p5 = { .x = 20, 40 }; // コンパイルエラー: (b) 指示付き初期化子と通常の初期化子は混在できない + Point p6 = { .x = 20, .x = 30, .y = 30 }; // コンパイルエラー: (c) 指示付き初期化子は重複できない Item i1{ .name = "shield", .id = 30, .count = 100 }; // OK Item i2{ .id = 0 }; // OK: name は {} で初期化、count は 1 で初期化 - //Item i3{ .pos.x = 10, .pos.y = 40 }; // コンパイルエラー: (d) 指示付き初期化のネストはできない + Item i3{ .pos.x = 10, .pos.y = 40 }; // コンパイルエラー: (d) 指示付き初期化のネストはできない - //int arr[3] = {[1] = 5}; // コンパイルエラー: (e) 配列の指示付き初期化はできない + int arr[3] = {[1] = 5}; // コンパイルエラー: (e) 配列の指示付き初期化はできない } ``` -従来までの `Point p{}`, `Item i{}` のような集成体初期化を「指示付き初期化子が 0 個の初期化」と考えると、新しい挙動も理解しやすくなります。 +従来までの `Point p{}`, `Item i{}` のような集成体初期化を「指示付き初期化子が 0 個の初期化」と考えると、新しい挙動も理解しやすくなります。なお、次のように集成体ではないクラスの初期化には、指示付き初期化子は使えません。 + +```C++ +#include + +struct Point +{ + int x, y; + Point() = default; + Point(int _x, int _y) + : x(_x) + , y(_y) {} +}; + +int main() +{ + // コンパイルエラー: + // ユーザ宣言されたコンストラクタを持つため集成体ではない + // 集成体ではないため指示付き初期化子は使えない + Point p{ .x = 20, .y = 4 }; +} +``` ## 標準ライブラリ From 6d35eea014f7d48a1db992d84ffce7991e30b2e1 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 1 May 2020 21:18:48 +0900 Subject: [PATCH 197/457] Update cpp20.md --- docs/standardization/cpp20.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 15827fc..e33f871 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -705,8 +705,8 @@ C++20 から、集成体において、メンバ変数名を指定した初期 - (a) 指示子の順番はメンバの宣言順と同じである必要がある - (b) 指示付き初期化子と通常の初期化子の混在はできない -- (c) 指示付き初期化は重複できない -- (d) 指示付き初期化のネストはできない +- (c) 同一メンバの指示付き初期化子は複数回使えない +- (d) 指示付き初期化子はネストできない - (e) 配列の指示付き初期化はできない また、初期化子の評価順序が左から右であることが保証されます。 @@ -723,7 +723,7 @@ struct Item { std::string name; int id = -1; - int count = 1; + Point pos = { -1, -1 }; }; void F(Point) {} @@ -738,14 +738,14 @@ int main() Point p4 = { .y = 20, .x = 30 }; // コンパイルエラー: (a) 指示子の順番がメンバの宣言順と異なる Point p5 = { .x = 20, 40 }; // コンパイルエラー: (b) 指示付き初期化子と通常の初期化子は混在できない - Point p6 = { .x = 20, .x = 30, .y = 30 }; // コンパイルエラー: (c) 指示付き初期化子は重複できない + Point p6 = { .x = 20, .x = 30, .y = 30 }; // コンパイルエラー: (c) 同一メンバの指示付き初期化子は複数回登場できない - Item i1{ .name = "shield", .id = 30, .count = 100 }; // OK - Item i2{ .id = 0 }; // OK: name は {} で初期化、count は 1 で初期化 + Item i1{ .name = "shield", .id = 30, .pos = { 5, 2 } }; // OK + Item i2{ .id = 0 }; // OK: name は {} で初期化、pos は { -1, -1 } で初期化 - Item i3{ .pos.x = 10, .pos.y = 40 }; // コンパイルエラー: (d) 指示付き初期化のネストはできない + Item i3{ .pos.x = 10, .pos.y = 40 }; // コンパイルエラー: (d) 指示付き初期化子はネストできない - int arr[3] = {[1] = 5}; // コンパイルエラー: (e) 配列の指示付き初期化はできない + int arr[3] = { [1] = 5 }; // コンパイルエラー: (e) 配列の指示付き初期化はできない } ``` @@ -767,7 +767,7 @@ int main() { // コンパイルエラー: // ユーザ宣言されたコンストラクタを持つため集成体ではない - // 集成体ではないため指示付き初期化子は使えない + // 集成体でないため指示付き初期化子を使えない Point p{ .x = 20, .y = 4 }; } ``` From 28116b419deabb04b157c33cc33f44686afdde03 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 21 May 2020 11:54:43 +0900 Subject: [PATCH 198/457] Update meetings.md --- docs/standardization/meetings.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 3edda52..d7506b1 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -22,11 +22,11 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 ## 2020 New York #### 場所 -- [2020-11-09 to 14](https://wg21.link/n4848) / ニューヨーク, ニューヨーク州, 米国 +- 開催延期 / [当初予定 2020-11-09 to 14](https://wg21.link/n4848) / ニューヨーク, ニューヨーク州, 米国 ## 2020 Varna #### 場所 -- 開催見送り / [当初予定 2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア +- 開催延期 / [当初予定 2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア ## 2020 Prague #### 場所 / 提案 / 会議の結果 From e27a7a0cccc4d617a47816212fc83748894d4f9a Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 29 May 2020 22:14:39 +0900 Subject: [PATCH 199/457] Update cpp20.md --- docs/standardization/cpp20.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index e33f871..853cb9b 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1858,3 +1858,13 @@ int main() auto a3 = std::to_array({ 1, 2 }); // std::array } ``` + + +### `std::filesystem::create_directory()` の挙動を直感的に [(P1164R1)](https://wg21.link/P1164R1) +C++17 で導入された `std::filesystem::create_directory()` および `std::filesystem::create_directories()` の当初の仕様では、 + +- 新しく作成するディレクトリのパスと同名のファイルが存在するときにはエラーにならない +- 新しく作成するディレクトリのパスが `"a/b/c"` であるとき、すでに `"a/b"` という名前のファイルが存在する場合はエラーとなる一方で、`"a/b/c"` というファイルが存在する場合にはエラーにならない + +という、対処しにくく一貫しない挙動がありました。C++20 では同名の(ディレクトリでない)ファイルが存在する場合は常にエラーになるよう仕様が修正されます。この変更は C++17 規格にさかのぼって適用され、対応した C++17 環境でも利用できます。 + From 0f8c03857337655dbecf9a647e10e30875c4c877 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 30 May 2020 10:01:44 +0900 Subject: [PATCH 200/457] conference --- docs/learn/conferences.md | 80 +++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 81 insertions(+) create mode 100644 docs/learn/conferences.md diff --git a/docs/learn/conferences.md b/docs/learn/conferences.md new file mode 100644 index 0000000..2310862 --- /dev/null +++ b/docs/learn/conferences.md @@ -0,0 +1,80 @@ +description: C++ のカンファレンスと発表資料 + +# C++ カンファレンス + +C++ に関するカンファレンスと発表資料へのリンクです。 + +## C++Now +https://cppnow.org/ | [YouTube](https://www.youtube.com/user/BoostCon/) + +- [C++Now 2019](https://cppnow.org/history/2019/talks/) +- [C++Now 2018](https://cppnow.org/history/2018/talks/) +- [C++Now 2017](https://cppnow.org/history/2017/talks/) +- [C++Now 2016](https://cppnow.org/history/2016/talks/) +- [C++Now 2015](https://cppnow.org/history/2015/talks/) +- [C++Now 2014](https://github.com/boostcon/cppnow_presentations_2014) +- [C++Now 2013](https://github.com/boostcon/cppnow_presentations_2013) +- [C++Now 2012](https://github.com/boostcon/cppnow_presentations_2012) +- [BoostCon 2011](https://github.com/boostcon/2011_presentations) +- [BoostCon 2010](https://github.com/boostcon/2010_presentations) +- [BoostCon 2009](https://github.com/boostcon/2009_presentations) +- [BoostCon 2008](https://github.com/boostcon/2008_presentations) +- [BoostCon 2007](https://github.com/boostcon/2007_presentations) + + +## CppCon +https://cppcon.org/ | [YouTube](https://www.youtube.com/user/CppCon/) + +- [CppCon 2019](https://github.com/CppCon/CppCon2019) +- [CppCon 2018](https://github.com/CppCon/CppCon2018) +- [CppCon 2017](https://github.com/CppCon/CppCon2017) +- [CppCon 2016](https://github.com/CppCon/CppCon2016) +- [CppCon 2015](https://github.com/CppCon/CppCon2015) +- [CppCon 2014](https://github.com/CppCon/CppCon2014) + + +## ACCU +https://conference.accu.org/ | [YouTube](https://www.youtube.com/channel/UCJhay24LTpO1s4bIZxuIqKw/) + +- [ACCU Autumn 2019](https://conference.accu.org/previous/2019_autumn/schedule/) +- [ACCU 2019](https://conference.accu.org/previous/2019/schedule/) +- [ACCU 2018](https://conference.accu.org/previous/2018/schedule/) +- [ACCU 2017](https://conference.accu.org/previous/2017/schedule/) +- [ACCU 2016](https://github.com/ACCUConf/PDFs_2016) +- [ACCU 2015](https://github.com/ACCUConf/PDFs_2015) +- [ACCU 2014](https://accu.org/index.php/conferences/accu_conference_2014/accu2014_schedule) +- [ACCU 2013](https://accu.org/index.php/conferences/accu_conference_2013/accu2013_schedule) +- [ACCU 2012](https://accu.org/index.php/conferences/accu_conference_2012/accu2012_schedule) +- [ACCU 2011](https://accu.org/index.php/conferences/accu_conference_2011/accu2011_sessions) +- [ACCU 2010](https://accu.org/index.php/conferences/accu_conference_2010/accu2010_sessions) +- [ACCU 2009](https://accu.org/index.php/conferences/accu_conference_2009/accu2009_sessions) +- [ACCU 2008](https://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions) +- [ACCU 2007](https://accu.org/index.php/conferences/accu_conference_2007/accu2007_sessions) +- [ACCU 2006](https://github.com/ACCUConf/PDFs_2006) +- [ACCU 2005](https://github.com/ACCUConf/PDFs_2005) +- [ACCU 2004](https://github.com/ACCUConf/PDFs_2004) +- [ACCU 2003](https://accu.org/index.php/conferences/2003/schedule2000b) +- [ACCU 2002](https://accu.org/index.php/conferences/2002/schedule2002) + + +## C++ Russia +https://cppconf-moscow.ru/en/ | [YouTube](https://www.youtube.com/channel/UCJ9v015sPgEi0jJXe_zanjA/playlists) + + +## Core C++ +https://corecpp.org/ | [YouTube](https://www.youtube.com/channel/UCE14XYFaK1fDTnOTqlOFrrQ/) + +- [Core C++ 2019](https://github.com/CoreCppIL/CoreCpp2019) + + +## Meeting C++ +https://meetingcpp.com/ + + +## code::dive +https://codedive.pl/ + + +## 参考文献 +- Conferences Worldwide + https://isocpp.org/wiki/faq/conferences-worldwide/ \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index c565979..7c1123d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -72,6 +72,7 @@ nav: - C++ オンライン資料: learn/online-resources.md - 国内の C++ 勉強会: learn/studymeetings.md - C++ コミュニティ: learn/communities.md + - C++ カンファレンス: learn/conferences.md - ライブラリ: - Boost: libraries/boost.md - コンテナ: libraries/containers.md From 79f62007c9e286f96b61915cbff627125e41c9ee Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 1 Jun 2020 00:36:58 +0900 Subject: [PATCH 201/457] Update meetings.md --- docs/standardization/meetings.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index d7506b1..4b78070 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -20,13 +20,19 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 #### 場所 - [2021-02-22 to 27](https://wg21.link/N4832) / コナ, ハワイ州, 米国 -## 2020 New York +## (2020 最新の提案リスト) +#### 提案 +- [JTC1/SC22/WG21 - Papers 2020 mailing2020-04 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-04) +- [JTC1/SC22/WG21 - Papers 2020 mailing2020-05 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-05) + - 解説: [WG21月次提案文書を眺める(2020年5月)](https://onihusube.hatenablog.com/entry/2020/06/01/001003) + +## 2020 New York (開催延期) #### 場所 -- 開催延期 / [当初予定 2020-11-09 to 14](https://wg21.link/n4848) / ニューヨーク, ニューヨーク州, 米国 +- [2020-11-09 to 14](https://wg21.link/n4848) / ニューヨーク, ニューヨーク州, 米国 -## 2020 Varna +## 2020 Varna (開催延期) #### 場所 -- 開催延期 / [当初予定 2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア +- [2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア ## 2020 Prague #### 場所 / 提案 / 会議の結果 From 9a580a45b962a50df12f2de7bba947c5b4b3ddd1 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 1 Jun 2020 11:56:54 +0900 Subject: [PATCH 202/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 4b78070..ef5fb42 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -23,6 +23,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 ## (2020 最新の提案リスト) #### 提案 - [JTC1/SC22/WG21 - Papers 2020 mailing2020-04 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-04) + - 解説: [WG21月次提案文書を眺める(2020年4月)](https://onihusube.hatenablog.com/entry/2020/05/01/194425) - [JTC1/SC22/WG21 - Papers 2020 mailing2020-05 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-05) - 解説: [WG21月次提案文書を眺める(2020年5月)](https://onihusube.hatenablog.com/entry/2020/06/01/001003) From cc568b6251373ea19031b9d9947bb395ca118c64 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Mon, 1 Jun 2020 11:58:07 +0900 Subject: [PATCH 203/457] Update contributors.md --- docs/contribution/contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index 0e9534d..da6d1cd 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -41,6 +41,7 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [標準ライブラリ 記事加筆](https://github.com/cppmap/cppmap.docs/issues/31) - [標準ライブラリ 記事更新](https://github.com/cppmap/cppmap.docs/pull/34) - [C++ 書籍 記事加筆](https://github.com/cppmap/cppmap.docs/pull/37) + - [標準化会議 情報提供](https://twitter.com/onihusube9/status/1267252027999973376) - [@tak0kada](https://twitter.com/tak0kada) さん - [国内の勉強会 記事加筆](https://github.com/cppmap/cppmap.docs/pull/26) - [@tetzrom](https://twitter.com/tetzrom) さん From 2e7964498fa16ae9f21a474c2e1347590956fdff Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 10 Jun 2020 11:37:24 +0900 Subject: [PATCH 204/457] =?UTF-8?q?=E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B9?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/articles/member-access.md | 6 ++++++ docs/articles/type-traits.md | 4 ++-- mkdocs.yml | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 docs/articles/member-access.md diff --git a/docs/articles/member-access.md b/docs/articles/member-access.md new file mode 100644 index 0000000..b201241 --- /dev/null +++ b/docs/articles/member-access.md @@ -0,0 +1,6 @@ +description: C++ アクセス指定子の効果 + +# C++ アクセス指定子の効果 + + + diff --git a/docs/articles/type-traits.md b/docs/articles/type-traits.md index 0673fd6..5f7f3a7 100644 --- a/docs/articles/type-traits.md +++ b/docs/articles/type-traits.md @@ -2,7 +2,7 @@ description: C++ 型特性の早見表 # C++ 型特性 早見表 - + - + diff --git a/mkdocs.yml b/mkdocs.yml index 7c1123d..4866dda 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -67,6 +67,7 @@ nav: - IEEE 754 演算のルール: articles/ieee754-arithmetic.md - C++ 関連の略語: articles/acronyms.md - C++ 型特性 早見表: articles/type-traits.md + - C++ アクセス指定子の効果: articles/member-access.md - 学習: - C++ 書籍: learn/books.md - C++ オンライン資料: learn/online-resources.md From 145278b2241a3c7b24a66f1dc9680efd7bc983aa Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 10 Jun 2020 11:48:20 +0900 Subject: [PATCH 205/457] =?UTF-8?q?=E3=82=B7=E3=83=BC=E3=83=88=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/articles/member-access.md | 1 - docs/articles/type-traits.md | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/articles/member-access.md b/docs/articles/member-access.md index b201241..4bb8f6c 100644 --- a/docs/articles/member-access.md +++ b/docs/articles/member-access.md @@ -3,4 +3,3 @@ description: C++ アクセス指定子の効果 # C++ アクセス指定子の効果 - diff --git a/docs/articles/type-traits.md b/docs/articles/type-traits.md index 5f7f3a7..371b5a9 100644 --- a/docs/articles/type-traits.md +++ b/docs/articles/type-traits.md @@ -2,7 +2,7 @@ description: C++ 型特性の早見表 # C++ 型特性 早見表 - + - + From d67de7db10ea8b4bfcbb802932333ecad0462f27 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 13 Jun 2020 00:35:53 +0900 Subject: [PATCH 206/457] update --- docs/learn/books.md | 1 + docs/learn/online-resources.md | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/learn/books.md b/docs/learn/books.md index 6e574bf..f750084 100644 --- a/docs/learn/books.md +++ b/docs/learn/books.md @@ -13,6 +13,7 @@ C++ の学習に役立つ最新の書籍を紹介します。 |------------------------------------------------------------------------|------|----------|------------------------------------------------------------------------------------------------| | [Effective Modern C++](https://amzn.to/2H8bnnF) | 2015 | C++14 | Effective C++ で有名な Scott Meyers による C++11/14 のガイドライン・コーディングスタイル・イディオム集 | | [C++11/14 コア言語](https://amzn.to/2HmyYQP) | 2015 | C++14 | C++11/14 の文法と言語機能を規格書に基づいて詳細に解説。[オープンソース版](https://github.com/EzoeRyou/cpp-book) | +| [組込みソフトウェア開発向けコーディング作法ガイド C++ 言語版 Ver.2.0](https://www.ipa.go.jp/sec/publish/tn16-007.html) | 2016 | C++14 | 基礎を学んだ人向けのコーディングスタイル本。組み込み向けの厳格さもあるが概ね汎用的。PDF 版は無料公開 | | [C++ によるプログラミングの原則と実践](https://amzn.to/2Hmzazx) | 2016 | C++14 | C++ を使ってプログラミングを教える 1,000 ページ超の入門書。C++ 生みの親 Bjarne Stroustrup 著 | | [基礎からしっかり学ぶ C++ の教科書](https://amzn.to/2IXa1hf) | 2017 | C++14 | :fa-graduation-cap: 初学者向け。基本的な文法からクラス、コンテナ、並列化まで扱う約 300 ページの入門書 | | [C++ の絵本 第2版](https://amzn.to/2TFvvTO) | 2017 | C++14 | クラスや参照、テンプレートなど、C に対する C++ 固有の言語機能を図版を用いて解説 | diff --git a/docs/learn/online-resources.md b/docs/learn/online-resources.md index 96151c5..760fc67 100644 --- a/docs/learn/online-resources.md +++ b/docs/learn/online-resources.md @@ -13,6 +13,7 @@ description: オンラインでアクセスできる C++ 資料の紹介 - [C++ Language Reference](https://docs.microsoft.com/en-us/cpp/cpp/cpp-language-reference) ## コーディングガイドライン +- [組込みソフトウェア開発向けコーディング作法ガイド C++ 言語版 Ver.2.0](https://www.ipa.go.jp/sec/publish/tn16-007.html) - [C++ Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) | [見出し日本語訳](https://qiita.com/tetsurom/items/322c7b58cddaada861ff) - [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) | [日本語訳](https://ttsuki.github.io/styleguide/cppguide.ja.html) - [LLVM Coding Standards](https://llvm.org/docs/CodingStandards.html) From 84341dfdd282233c4d3637158721f041c7d09572 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 17 Jun 2020 12:17:06 +0900 Subject: [PATCH 207/457] Update index.md --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index f24d7f5..a5921d9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -34,3 +34,4 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - (匿名 😊) - (匿名 🐝) - (匿名 🐠) +- YASAI03 From c3ce8e4ddbad5718c4c0224a48a4a56bdb4a8574 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 17 Jun 2020 13:01:57 +0900 Subject: [PATCH 208/457] Update index.md --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index a5921d9..eb226cf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -34,4 +34,4 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - (匿名 😊) - (匿名 🐝) - (匿名 🐠) -- YASAI03 +- 野菜ジュース From 42d9e183c615027169be2d168d6d3fc66b4e84ab Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 17 Jun 2020 22:44:17 +0900 Subject: [PATCH 209/457] Update cpp20.md --- docs/standardization/cpp20.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 853cb9b..75cf243 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -954,7 +954,7 @@ int main() ``` -### 非順序連想コンテナのルックアップ操作で、`key_type` と比較可能な型を変換せずに使えるように [(P0919R3)](http://wg21.link/P0919r3) +### 非順序連想コンテナのルックアップ操作で、`key_type` と比較可能な型を変換せずに使えるように [(P0919R3)](http://wg21.link/P0919r3), [(P1690R1)](http://wg21.link/P1690R1) C++17 までの `unorderd_map` や `unordered_set` など非順序連想コンテナでは、`find()`, `count()`, `equal_range()` などルックアップを行うメンバ関数は引数に `key_type` をとり、例えば次のようなケースで `std::string` 型の一時オブジェクトが作成されて非効率でした。 ```C++ @@ -969,17 +969,24 @@ int main() } ``` -C++20 では、非順序連想コンテナのテンプレートパラメータ `Hash` が `transparent_key_equal` タグを持つときに、`key_type` 以外の型を引数にとるメンバ関数テンプレートのオーバーロードが使用可能になり、一時オブジェクトの作成を回避できるようになります。 +C++20 では、非順序連想コンテナのテンプレートパラメータについて `Hash::is_transparent` と `Pred::is_transparent` が存在するときに、`key_type` 以外の型を引数にとるメンバ関数テンプレートのオーバーロードが使用可能になり、一時オブジェクトの作成を回避できるようになります。 ```C++ #include #include #include +struct string_compare +{ + using is_transparent = void; + bool operator()(std::string_view key, std::string_view txt) const { return key == txt; } +}; + struct string_hash { - using transparent_key_equal = std::equal_to<>; // KeyEqual to use - using hash_type = std::hash; // helper local type + using is_transparent = void; + using transparent_key_equal = string_compare; + using hash_type = std::hash; // helper local type size_t operator()(std::string_view txt) const { return hash_type{}(txt); } size_t operator()(const std::string& txt) const { return hash_type{}(txt); } size_t operator()(const char* txt) const { return hash_type{}(txt); } @@ -989,7 +996,7 @@ int main() { using namespace std::literals; - std::unordered_map table = { /* ... */ }; + std::unordered_map table = { /* ... */ }; auto it1 = table.find("abc"); // std::string 型の一時オブジェクトは作成されない From 83295fa827a73991c686025d98a33cb3c7bf58e6 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 18 Jun 2020 11:42:25 +0900 Subject: [PATCH 210/457] Update meetings.md --- docs/standardization/meetings.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index ef5fb42..7fb5899 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -14,26 +14,27 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 ## 2021 Montreal #### 場所 -- 2021-07-12 TO 17 / モントリオール, カナダ +- 2021-07-12 to 17 / モントリオール, カナダ ## 2021 Kona #### 場所 - [2021-02-22 to 27](https://wg21.link/N4832) / コナ, ハワイ州, 米国 -## (2020 最新の提案リスト) +## (最新の提案リスト) #### 提案 - [JTC1/SC22/WG21 - Papers 2020 mailing2020-04 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-04) - - 解説: [WG21月次提案文書を眺める(2020年4月)](https://onihusube.hatenablog.com/entry/2020/05/01/194425) + - 日本語での解説: [WG21月次提案文書を眺める(2020年4月)](https://onihusube.hatenablog.com/entry/2020/05/01/194425) - [JTC1/SC22/WG21 - Papers 2020 mailing2020-05 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-05) - - 解説: [WG21月次提案文書を眺める(2020年5月)](https://onihusube.hatenablog.com/entry/2020/06/01/001003) + - 日本語での解説: [WG21月次提案文書を眺める(2020年5月)](https://onihusube.hatenablog.com/entry/2020/06/01/001003) +- [JTC1/SC22/WG21 - Papers 2020 mailing2020-06 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-06) -## 2020 New York (開催延期) +## 2020 New York #### 場所 -- [2020-11-09 to 14](https://wg21.link/n4848) / ニューヨーク, ニューヨーク州, 米国 +- [2020-11-09 to 14](https://wg21.link/n4848) / ニューヨーク, ニューヨーク州, 米国 (開催延期) -## 2020 Varna (開催延期) +## 2020 Varna #### 場所 -- [2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア +- [2020-06-01 to 06](https://wg21.link/n4837) / ヴァルナ, ブルガリア (開催延期) ## 2020 Prague #### 場所 / 提案 / 会議の結果 From eadd3eb1e981e1f544af4aabe5860b8132127f34 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 25 Jun 2020 12:46:08 +0900 Subject: [PATCH 211/457] update --- docs/learn/online-resources.md | 4 ++++ docs/tools/onlinecompilers.md | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/learn/online-resources.md b/docs/learn/online-resources.md index 760fc67..5928eb8 100644 --- a/docs/learn/online-resources.md +++ b/docs/learn/online-resources.md @@ -12,6 +12,10 @@ description: オンラインでアクセスできる C++ 資料の紹介 - [cppreference.com](https://en.cppreference.com/w/) - [C++ Language Reference](https://docs.microsoft.com/en-us/cpp/cpp/cpp-language-reference) +## 論文 +- [Thriving in a Crowded and Changing World: C++ 2006–2020](https://www.stroustrup.com/hopl20main-p5-p-bfc9cd4--final.pdf) + - C++ 生みの親ストラウストラップ氏による 2006~2020 年の C++ の進化の解説論文 + ## コーディングガイドライン - [組込みソフトウェア開発向けコーディング作法ガイド C++ 言語版 Ver.2.0](https://www.ipa.go.jp/sec/publish/tn16-007.html) - [C++ Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) | [見出し日本語訳](https://qiita.com/tetsurom/items/322c7b58cddaada861ff) diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index ac0f721..c821c3b 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -8,12 +8,12 @@ C++ プログラムのコンパイル、実行、共有ができる Web サイ | | コンパイラ | 日本語入出力 | インタラクティブ | 複数ファイル | |---------------------------------------------------------------|-----------------------------------------------------------------------------------------------|:------------:|:------------:|:------------:| -| [Wandbox](https://wandbox.org/) |
  • GCC 4.4.7 - **10.0.1\***
  • Clang 3.1 - **11.0.0\***
  • | :fa-check: | | :fa-check: | -| [Compiler Explorer](https://godbolt.org/)
    (Execution モード) |
  • GCC 4.7.3 - **10.0.0\***
  • Clang 3.3 - **11.0.0\***
  • ICC 16.0.3 - **19.0.1**
  • | :fa-check: | | | +| [Wandbox](https://wandbox.org/) |
  • GCC 4.4.7 - **11.0.0\***
  • Clang 3.1 - **11.0.0\***
  • | :fa-check: | | :fa-check: | +| [Compiler Explorer](https://godbolt.org/)
    (Execution モード) |
  • GCC 4.7.3 - **11.0.0\***
  • Clang 3.3 - **11.0.0\***
  • ICC 16.0.3 - **19.0.1**
  • | :fa-check: | | | | [Ideone](https://ideone.com/) |
  • GCC 8.3.0
  • | :fa-check: | | | | [GDB Online](https://www.onlinegdb.com/) |
  • GCC 7.4.0
  • | :fa-check: | :fa-check: | :fa-check: | +| [paiza.io](https://paiza.io/ja/projects/new?language=cpp) |
  • Clang 8.0.0
  • | :fa-check: | | :fa-check: | | [repl.it](https://repl.it/languages/cpp) |
  • Clang 7.0.0
  • | :fa-check: | :fa-check: | :fa-check: | -| [paiza.io](https://paiza.io/ja/projects/new?language=cpp) |
  • Clang 7.0.0
  • | :fa-check: | | :fa-check: | [C++ Shell](http://cpp.sh/) |
  • GCC 4.9.2
  • | | :fa-check: | | * 印は trunk From 5eb6c4c6e076f1d63490ece1ae3eb12615d8371a Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Fri, 26 Jun 2020 21:42:30 +0900 Subject: [PATCH 212/457] =?UTF-8?q?=E4=B8=A6=E8=A1=8C=E3=83=BB=E4=B8=A6?= =?UTF-8?q?=E5=88=97=20rename?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/libraries/{multi-threading.md => concurrency.md} | 4 +++- mkdocs.yml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) rename docs/libraries/{multi-threading.md => concurrency.md} (86%) diff --git a/docs/libraries/multi-threading.md b/docs/libraries/concurrency.md similarity index 86% rename from docs/libraries/multi-threading.md rename to docs/libraries/concurrency.md index e291889..850609a 100644 --- a/docs/libraries/multi-threading.md +++ b/docs/libraries/concurrency.md @@ -1,6 +1,8 @@ description: C++ の並行・並列ライブラリの紹介 -# マルチタスクスケジューリング +# 並行・並列 + +## マルチタスクスケジューリング - [Cpp-Taskflow](https://github.com/cpp-taskflow/cpp-taskflow) MIT - C++17 以上でモダンな API でタスクフローが組める diff --git a/mkdocs.yml b/mkdocs.yml index 4866dda..2bcc21b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -78,7 +78,7 @@ nav: - Boost: libraries/boost.md - コンテナ: libraries/containers.md - テキストデータ: libraries/text-data.md - - 並行・並列: libraries/multi-threading.md + - 並行・並列: libraries/concurrency.md - テストフレームワーク: libraries/testing.md - 数学: libraries/math.md - ツール: From 96f1e479f9751047f3df7cad7fd0c5ab77f17931 Mon Sep 17 00:00:00 2001 From: yumetodo Date: Sat, 27 Jun 2020 00:27:01 +0900 Subject: [PATCH 213/457] feat(lib/concurrency): add cppcoro ref: - #39 - https://qiita.com/Fuyutsubaki/items/a4c9921587ce53d95e55 --- docs/libraries/concurrency.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/libraries/concurrency.md b/docs/libraries/concurrency.md index 850609a..6d15aec 100644 --- a/docs/libraries/concurrency.md +++ b/docs/libraries/concurrency.md @@ -9,3 +9,8 @@ description: C++ の並行・並列ライブラリの紹介 - work-stealing スケジューラによる高効率なタスクスケジューリング - `chrome://tracing` で実行状況をモニタできる - タスクフローをグラフ出力できる + +## コルーチン + +- [cppcoro](https://github.com/lewissbaker/cppcoro) MIT + - C++20コルーチンの細かな制御/拡張ポイントを担当するライブラリ部分の実装 From c0f088d36b0f251176f149238bd2b450df0d7bd3 Mon Sep 17 00:00:00 2001 From: yumetodo Date: Sat, 27 Jun 2020 12:05:48 +0900 Subject: [PATCH 214/457] chore(lib/concurrency): add link to qiita article --- docs/libraries/concurrency.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/libraries/concurrency.md b/docs/libraries/concurrency.md index 6d15aec..65ac921 100644 --- a/docs/libraries/concurrency.md +++ b/docs/libraries/concurrency.md @@ -14,3 +14,4 @@ description: C++ の並行・並列ライブラリの紹介 - [cppcoro](https://github.com/lewissbaker/cppcoro) MIT - C++20コルーチンの細かな制御/拡張ポイントを担当するライブラリ部分の実装 + - [C++20のコルーチン for アプリケーション - Qiita](https://qiita.com/Fuyutsubaki/items/a4c9921587ce53d95e55) From ee0b3a1a3dfb996e5bcf179df2eb1aa04e473132 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 27 Jun 2020 16:41:19 +0900 Subject: [PATCH 215/457] =?UTF-8?q?=E6=96=87=E7=AB=A0=E3=82=B9=E3=82=BF?= =?UTF-8?q?=E3=82=A4=E3=83=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/libraries/concurrency.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/libraries/concurrency.md b/docs/libraries/concurrency.md index 65ac921..666b02a 100644 --- a/docs/libraries/concurrency.md +++ b/docs/libraries/concurrency.md @@ -13,5 +13,5 @@ description: C++ の並行・並列ライブラリの紹介 ## コルーチン - [cppcoro](https://github.com/lewissbaker/cppcoro) MIT - - C++20コルーチンの細かな制御/拡張ポイントを担当するライブラリ部分の実装 - - [C++20のコルーチン for アプリケーション - Qiita](https://qiita.com/Fuyutsubaki/items/a4c9921587ce53d95e55) + - C++20 コルーチンの細かな制御 / 拡張ポイントを担当するライブラリ部分の実装 + - [C++20 のコルーチン for アプリケーション - Qiita](https://qiita.com/Fuyutsubaki/items/a4c9921587ce53d95e55) From 6a5668ec6e239103bff50cad910d44953b731dbb Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sat, 27 Jun 2020 16:44:39 +0900 Subject: [PATCH 216/457] Update contributors.md --- docs/contribution/contributors.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/contribution/contributors.md b/docs/contribution/contributors.md index da6d1cd..da35fc3 100644 --- a/docs/contribution/contributors.md +++ b/docs/contribution/contributors.md @@ -57,4 +57,6 @@ C++ の歩き方 Web サイトの改善、情報拡充に協力してくれた - [@yuji_n_dispair](https://twitter.com/yuji_n_dispair) さん - [国内の勉強会 情報加筆](https://github.com/cppmap/cppmap.docs/pull/29) - [@yumetodo](https://twitter.com/yumetodo) さん - - [テキストデータ ライブラリ 情報提供](https://github.com/cppmap/cppmap.docs/pull/17) \ No newline at end of file + - [テキストデータ ライブラリ 情報提供](https://github.com/cppmap/cppmap.docs/pull/17) + - [並行・並列 ライブラリ 記事加筆](https://github.com/cppmap/cppmap.docs/pull/40) + \ No newline at end of file From 7f347a4136bc74cb2f011e688ed2152bd4d01093 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 30 Jun 2020 17:41:54 +0900 Subject: [PATCH 217/457] update --- docs/tools/images/build-bench.png | Bin 0 -> 70889 bytes docs/tools/images/quick-bench.png | Bin 145708 -> 92400 bytes docs/tools/onlinecompilers.md | 10 ++++++++-- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 docs/tools/images/build-bench.png diff --git a/docs/tools/images/build-bench.png b/docs/tools/images/build-bench.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0420a7a4da805e7fe9601bd78d3a7e2c3c7a78 GIT binary patch literal 70889 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 VyMJ-J1pc-IcNNtYisTsi5Bp6{z?DO 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 WQGEUPS-_0!lZPtbO8fKP^Zx_)2$O37 literal 145708 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 ZR2tnjlA#Rrl*B3U)7LT9CTKnk{V(T>i75a8 diff --git a/docs/tools/onlinecompilers.md b/docs/tools/onlinecompilers.md index c821c3b..d6a111f 100644 --- a/docs/tools/onlinecompilers.md +++ b/docs/tools/onlinecompilers.md @@ -46,14 +46,20 @@ square(int): Compiler Explorer には、Web 上のファイルを `#include "URL"` でインクルードできる独自拡張機能があります。この機能を使うと、GitHub などに公開されているシングルヘッダライブラリをプログラムの中で簡単に使えます(例: https://godbolt.org/z/OV-vGQ) -### Quick C++ Benchmark -[Quick C++ Benchmark](http://quick-bench.com/) は、[google/benchmark](https://github.com/google/benchmark) による実行時間の計測と、その結果のビジュアライズができるオンラインコンパイラです。棒グラフによる比較、アセンブリの表示、グラフ画像のダウンロード、URL による結果のシェアなどの機能があります。 +### Quick Bench +[Quick Bench](http://quick-bench.com/) は、[google/benchmark](https://github.com/google/benchmark) による C++ プログラムの実行時間の計測と、その結果のビジュアライズができるオンラインコンパイラです。棒グラフによる比較、アセンブリの表示、グラフ画像のダウンロード、URL による結果のシェアなどの機能があります。 例: http://quick-bench.com/O1QdfCc73docKGKjaYBxWG6a9AU ![](images/quick-bench.png) +### Build Bench +[Build Bench](https://build-bench.com/) は、異なる C++ ソースやビルドオプションどうしのビルド時間を比較できる Web サービスです。 + +![](images/build-bench.png) + + ### C++ Insights [C++ Insights](https://cppinsights.io/) は、ラムダ式、range-based for, 構造化束縛などで何が起こっているのかを、プログラムを単純なソースコードに分解することで可視化するオンラインのツールです。 From 334260ce1719c3972b830984a3a6fef3ba77a021 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 30 Jun 2020 18:00:31 +0900 Subject: [PATCH 218/457] Update cppx.md --- docs/standardization/cppx.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/standardization/cppx.md b/docs/standardization/cppx.md index 3f69d44..70cfc41 100644 --- a/docs/standardization/cppx.md +++ b/docs/standardization/cppx.md @@ -269,6 +269,16 @@ std::cout << s << '\n'; ``` +## `std::print()` +- [Formatted output (P2093)](https://wg21.link/P2093) + +C++20 の `std::format` をベースにした新しい標準出力 API, `std::print()` を導入する提案です。`std::cout` に比べて、Unicode 対応、使いやすさや実行時性能の向上、バイナリサイズの削減が期待されます。 + +```C++ +std::print("Hello, {}!", name); +``` + + ## Executors From ab688427f3707a7e33d39f2cc4fb31f40f42317e Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 2 Jul 2020 17:46:12 +0900 Subject: [PATCH 219/457] =?UTF-8?q?=E3=83=97=E3=83=AD=E3=82=B8=E3=82=A7?= =?UTF-8?q?=E3=82=AF=E3=83=88=E3=83=BB=E3=83=86=E3=83=B3=E3=83=97=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tools/project-template.md | 11 +++++++++++ mkdocs.yml | 1 + 2 files changed, 12 insertions(+) create mode 100644 docs/tools/project-template.md diff --git a/docs/tools/project-template.md b/docs/tools/project-template.md new file mode 100644 index 0000000..cf263c1 --- /dev/null +++ b/docs/tools/project-template.md @@ -0,0 +1,11 @@ +description: C++ プロジェクト・テンプレートの紹介 + +# C++ プロジェクト・テンプレート + +- [ModernCppStarter](https://github.com/TheLartians/ModernCppStarter) Unlicense +- [Modern C++ Template](https://github.com/filipdutescu/modern-cpp-template) Unlicense +- [CMake C++ Project Template](https://github.com/kigster/cmake-project-template) MIT +- [cmake-init](https://github.com/cginternals/cmake-init) MIT +- [Boiler plate for C++ projects](https://github.com/bsamseth/cpp-project) Unlicense +- [How to export C++ library](https://github.com/robotology/how-to-export-cpp-library) MIT +- [cpptemplate](https://github.com/Ben1980/cpptemplate) MIT diff --git a/mkdocs.yml b/mkdocs.yml index 2bcc21b..ea76e4c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -86,5 +86,6 @@ nav: - C++ コンパイラ: tools/compilers.md - C++ パッケージマネージャ: tools/package-manager.md - C++ コードフォーマッタ: tools/code-formatter.md + - C++ プロジェクトテンプレート: tools/project-template.md - 貢献: - コントリビュータ: contribution/contributors.md From 16dcaa042468af5942580d1fefde8c0a9e9549cb Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Sun, 5 Jul 2020 00:41:48 +0900 Subject: [PATCH 220/457] Update meetings.md --- docs/standardization/meetings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/standardization/meetings.md b/docs/standardization/meetings.md index 7fb5899..423aa2b 100644 --- a/docs/standardization/meetings.md +++ b/docs/standardization/meetings.md @@ -27,6 +27,7 @@ C++ の規格を議論する C++ 標準化委員会の主要会議の開催情 - [JTC1/SC22/WG21 - Papers 2020 mailing2020-05 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-05) - 日本語での解説: [WG21月次提案文書を眺める(2020年5月)](https://onihusube.hatenablog.com/entry/2020/06/01/001003) - [JTC1/SC22/WG21 - Papers 2020 mailing2020-06 post-Prague](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/#mailing2020-06) + - 日本語での解説: [WG21月次提案文書を眺める(2020年6月)](https://onihusube.hatenablog.com/entry/2020/07/05/003248) ## 2020 New York #### 場所 From 49f88511bf0d55ca92e4281a27ed469580f29e21 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 9 Jul 2020 13:59:43 +0900 Subject: [PATCH 221/457] update --- README.md | 14 ++++++++++ docs/images/donut_small-white-24dp.svg | 1 + docs/images/logo.png | Bin 0 -> 2417 bytes docs/standardization/cpp20/aprilfool.md | 3 -- mkdocs.yml | 35 +++++++++++++----------- 5 files changed, 34 insertions(+), 19 deletions(-) create mode 100644 docs/images/donut_small-white-24dp.svg create mode 100644 docs/images/logo.png delete mode 100644 docs/standardization/cpp20/aprilfool.md diff --git a/README.md b/README.md index 8cdf14c..1fe0045 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,9 @@ コントリビューションが採用された方は、[コントリビュータ](https://cppmap.github.io/contribution/contributors/)として Web サイトに名前を掲載します。 ## ビルド方法 + +### MKDocs のインストール + MkDocs を使います。 Python 3 をインストールし、MkDocs と MkDocs Material テーマ、`fontawesome_markdown` をインストールするために、以下のコマンドを実行します。 ``` @@ -23,8 +26,19 @@ pip install mkdocs pip install mkdocs-material pip install fontawesome_markdown ``` + +### 日本語検索スクリプトの修正 + +日本語の検索スクリプトに問題があるため、次の手順で修正します ([参考](https://qiita.com/t-kuni/items/410aac718e531c6aee17#%E4%BF%AE%E6%AD%A3%E7%AE%87%E6%89%80)) +- `Python??\Lib\site-packages\mkdocs\contrib\search\lunr-language\` フォルダに [TynySegmenter](http://chasen.org/~taku/software/TinySegmenter/tiny_segmenter-0.2.js) を追加、TynySegmenter の最終行に `module.exports = TinySegmenter;` を加える +- `Python??\Lib\site-packages\mkdocs\contrib\search\lunr-language\lunr.jp.js` で `var segmenter = new lunr.TinySegmenter(); // インスタンス生成` を `var segmenter = new (require('./tiny_segmenter-0.2.js'))(); // インスタンス生成` に置き換え + +### ビルド + `mkdocs.yml` があるプロジェクトフォルダに移動し、以下のコマンドを実行すると Web サイトをビルドできます。 ``` mkdocs build ``` ビルドされた Web サイトは `../cppmap.github.io` ディレクトリに保存されます。 + + diff --git a/docs/images/donut_small-white-24dp.svg b/docs/images/donut_small-white-24dp.svg new file mode 100644 index 0000000..67b322b --- /dev/null +++ b/docs/images/donut_small-white-24dp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/images/logo.png b/docs/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..43afb4d458e9e0e739d03822610f4e6fcb8ad052 GIT binary patch literal 2417 zcmbVO3vd+W9p5`b8bVM^cr?-LtQ(?-WN-KOUfDI5T(~6M1rCqoEM#OXd%NG=ZF9G~ z+1(_Ul#B!jg+U@?0f!plH1cqKpeSHL<>&ZuCS z-pt~ZmddI zh%N~PQLm%`)M0VroYn3?U9`pOwApF86s1UO89|m2RvT`0GIo-oC^Y@Upf-h%F!j~7 zX?25~_j9DT1sCl8EXO z*|5~2xiM(zs0#@>BUV(?VS)i8lB`TvEu`+!2$1J8IJrfMk0|Fk0>nWAh?)wq)(lpT zNt&d_q+5v29Dhpz3~eBg(Q#8-5{ZloRjX-*ZlnWpQ?wdtmjO`^RH;SbKus$&vsm{= zX1oeuHAx9cQhY2?!7-CjuUAhDjhYt=A}_V6v&Y>5)vN~Gn0}6vHk@>XtX9VEg1MVR z(hNzCLIV;nMB2X(r5K8Y=x;$GYj{>;|0kH|n24k#Sm?8mV55ML#VCemBFT8AxTHYE z&^p`reZSWmRHTRyhX-o?yt$~q#_P1wPA5)TtRvDAs4(lYlMyg>zgps2bQb9MM+<_NI4I*A^C%Dwvt@P? zkI*cMJM8u{oTY6poTeibP1_t1-ew<@_K+gLnq=eSrRrAkP@INfI@$OC8OF^DWbKp3aE<0*xe2hiCfw)iLF2x=Yh;BEbK@?QQcTXkrF5? z%W;8Yb$5wYkxv(TCPAnsq2KW8mU>jS^@pQ$d#o9C|NBw;PJ#TNQA#I)i?L!9z?M#6 zx<7>8{6;B2e3u;~XX6^>7#wzAeVS?eaFKa&01=8-;AIG`uB~hT<=e*#FMAIk zk`_NaJiN#-0QP?x|6}~0=lfCt>MLJCnm>0}SH4G$=cU{~1U{{v*b?v@_o&6UK_S8o+gY%I@ zUeOadTJAqics+l=0&=dNJzwnkV$GC!6PfIX&i8xvtl3bT%_P>ukX;>*Xtg=@p;}?zi*U$GfNVGTekm& zBID5X?$!{dhIe1{K;VVo!8##$o-l7 z@;!I8_MGm#fAF2YRgD8jPflGsH)nMf^BHRT?YqZVKG(Fm`;JW)&Aw*yjDi{K7o9Sf zMxX!7Ppjnl{x@Hp)$5;p%s+X-i;H|OvKOC{FV1Wzm|kD7wR}!*dH+?h`>Hqt4Vpbi z@(YiZP)mMS^X%Hm{du!D6^8FE-SYD}eWAP8PuhC{6kf74Zroh5s^46A^0_~h9(uI) zTuVjXkzI4%Z$B8GG8oI#cIQ5}wEM%ad3!~0v*F6@ZNaayCEt<98L<2%{iDcVv#|P= Ixyx4m7f>%w@&Et; literal 0 HcmV?d00001 diff --git a/docs/standardization/cpp20/aprilfool.md b/docs/standardization/cpp20/aprilfool.md deleted file mode 100644 index e9cc0ca..0000000 --- a/docs/standardization/cpp20/aprilfool.md +++ /dev/null @@ -1,3 +0,0 @@ -# April Fool - -本当の C++20 の新機能は[こちら](https://cppmap.github.io/standardization/cpp20/) diff --git a/mkdocs.yml b/mkdocs.yml index ea76e4c..274c720 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,9 +2,9 @@ site_dir: '../cppmap.github.io' # Project information site_name: C++ の歩き方 | CppMap -site_description: C++17, C++20, C++23, C++26 に関する情報を調査・提供します -site_author: Ryo Suzuki site_url: https://cppmap.github.io/ +site_author: Ryo Suzuki +site_description: C++17, C++20, C++23, C++26 に関する情報を調査・提供します # Repository repo_name: cppmap/cppmap.docs @@ -16,23 +16,26 @@ copyright: To the extent possible under law, Ryo Suzuki has waived all copyright # Theme theme: - name: 'material' - language: 'ja' - favicon: 'assets/images/logo.png' - logo: - icon: 'donut_small' + name: material + language: ja palette: - primary: 'teal' - accent: 'teal' - feature: - tabs: true + primary: teal + accent: teal + logo: images/donut_small-white-24dp.svg + favicon: assets/images/logo.png + features: + - tabs +plugins: + - search: + lang: + - en + - ja + separator: '[\s 、。,.がのをにへとでやかもる「」『』]+' + prebuild_index: true extra: - search: - language: 'en, ja' - tokenizer: '[\s 、。,.がのをにへとでやかもる「」『』]+' social: - - type: 'twitter' - link: 'https://twitter.com/Reputeless' + - icon: fontawesome/brands/twitter + link: https://twitter.com/Reputeless markdown_extensions: - admonition - codehilite From 12ba4660793456ddc4409fd369e08ef3f629e949 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 14 Jul 2020 20:15:08 +0900 Subject: [PATCH 222/457] update --- docs/index.md | 1 + docs/standardization/cpp20.md | 55 +++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/docs/index.md b/docs/index.md index eb226cf..9d7caac 100644 --- a/docs/index.md +++ b/docs/index.md @@ -35,3 +35,4 @@ C++17, C++20, C++23, C++26 に関する情報を調査・提供します。 - (匿名 🐝) - (匿名 🐠) - 野菜ジュース +- MawkishWaffle diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 75cf243..fbbed34 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1792,6 +1792,7 @@ int main() std::cout << std::countl_one(x) << '\n'; // 0 std::cout << std::countr_zero(x) << '\n'; // 0 std::cout << std::countr_one(x) << '\n'; // 4 + std::cout << std::popcount(x) << '\n'; // 10 } ``` ``` @@ -1821,6 +1822,7 @@ int main() 0 0 4 +10 ``` @@ -1875,3 +1877,56 @@ C++17 で導入された `std::filesystem::create_directory()` および `std::f という、対処しにくく一貫しない挙動がありました。C++20 では同名の(ディレクトリでない)ファイルが存在する場合は常にエラーになるよう仕様が修正されます。この変更は C++17 規格にさかのぼって適用され、対応した C++17 環境でも利用できます。 + +### `std::make_shared()` が配列型をサポート [(P0674R1)](https://wg21.link/P0674R1) +C++11 で導入された `std::make_shared()` は配列型をサポートしていませんでしたが、C++20 で配列型のためのオーバーロードが追加されました。 + +```C++ +#include +#include + +int main() +{ + // 値初期化された int[100] + std::shared_ptr p1 = std::make_shared(100); + std::cout << p1[99] << '\n'; // 0 + + // 値初期化された double[6][4] + std::shared_ptr p2 = std::make_shared(6); + std::cout << p2[5][3] << '\n'; // 0.0 + + // 値初期化された int[100] + std::shared_ptr p3 = std::make_shared(); + std::cout << p3[99] << '\n'; // 0 + + // 値初期化された double[6][4] + std::shared_ptr p4 = std::make_shared(); + std::cout << p4[5][3] << '\n'; // 0.0 + + // int[100] で各要素は -1 + std::shared_ptr p5 = std::make_shared(100, -1); + std::cout << p5[99] << '\n'; // -1 + + // double[6][4] で、各 double[4] は { 1.0, 0.9, 0.8, 0.7 } + std::shared_ptr p6 = std::make_shared(6, { 1.0, 0.9, 0.8, 0.7 }); + std::cout << p6[5][3] << '\n'; // 0.7 + + // int[100] で各要素は -2 + std::shared_ptr p7 = std::make_shared(-2); + std::cout << p7[99] << '\n'; // -2 + + // double[6][4] で、各 double[4] は { 0.0, 0.1, 0.2, 0.3 } + std::shared_ptr p8 = std::make_shared({ 0.0, 0.1, 0.2, 0.3 }); + std::cout << p8[5][3] << '\n'; // 0.3 +} +``` +``` +0 +0 +0 +0 +-1 +0.7 +-2 +0.3 +``` From 6330cf84bc253c9bfe89efa82da4e65c95f4b48d Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 14 Jul 2020 20:20:57 +0900 Subject: [PATCH 223/457] Update cpp20.md --- docs/standardization/cpp20.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index fbbed34..1bd7bb6 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1878,8 +1878,8 @@ C++17 で導入された `std::filesystem::create_directory()` および `std::f という、対処しにくく一貫しない挙動がありました。C++20 では同名の(ディレクトリでない)ファイルが存在する場合は常にエラーになるよう仕様が修正されます。この変更は C++17 規格にさかのぼって適用され、対応した C++17 環境でも利用できます。 -### `std::make_shared()` が配列型をサポート [(P0674R1)](https://wg21.link/P0674R1) -C++11 で導入された `std::make_shared()` は配列型をサポートしていませんでしたが、C++20 で配列型のためのオーバーロードが追加されました。 +### `std::make_shared()` と `std::allocate_shared()` が配列をサポート [(P0674R1)](https://wg21.link/P0674R1) +C++11 で導入された `std::make_shared()`, `std::allocate_shared()` は配列をサポートしていませんでしたが、C++20 で配列型のためのオーバーロードが追加されました。 ```C++ #include From 7df6911ac1244b51f54426c275f75491f9a02570 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 14 Jul 2020 20:24:30 +0900 Subject: [PATCH 224/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 1bd7bb6..9154971 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1879,7 +1879,7 @@ C++17 で導入された `std::filesystem::create_directory()` および `std::f ### `std::make_shared()` と `std::allocate_shared()` が配列をサポート [(P0674R1)](https://wg21.link/P0674R1) -C++11 で導入された `std::make_shared()`, `std::allocate_shared()` は配列をサポートしていませんでしたが、C++20 で配列型のためのオーバーロードが追加されました。 +C++11 から提供される `std::make_shared()`, `std::allocate_shared()` は配列をサポートしていませんでした。C++20 からは配列型のためのオーバーロードが追加されます。 ```C++ #include From 1dec1665ecb38ed20a0b81f89edc7a424b5d8e6a Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Tue, 14 Jul 2020 20:28:16 +0900 Subject: [PATCH 225/457] Update cpp20.md --- docs/standardization/cpp20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standardization/cpp20.md b/docs/standardization/cpp20.md index 9154971..e5e66a0 100644 --- a/docs/standardization/cpp20.md +++ b/docs/standardization/cpp20.md @@ -1879,7 +1879,7 @@ C++17 で導入された `std::filesystem::create_directory()` および `std::f ### `std::make_shared()` と `std::allocate_shared()` が配列をサポート [(P0674R1)](https://wg21.link/P0674R1) -C++11 から提供される `std::make_shared()`, `std::allocate_shared()` は配列をサポートしていませんでした。C++20 からは配列型のためのオーバーロードが追加されます。 +C++11 で導入された `std::make_shared()`, `std::allocate_shared()` は配列をサポートしていませんでした。C++20 からは配列型のためのオーバーロードが追加されます。 ```C++ #include From 77f52f5028c34cd5390e581197310b914bbcf733 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Wed, 15 Jul 2020 17:24:13 +0900 Subject: [PATCH 226/457] update --- docs/standardization/header.md | 10 +++++----- docs/standardization/working-drafts.md | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/standardization/header.md b/docs/standardization/header.md index 16a5f08..5cdb0e2 100644 --- a/docs/standardization/header.md +++ b/docs/standardization/header.md @@ -19,7 +19,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<any>](http://eel.is/c++draft/any.synop)|[en](https://en.cppreference.com/w/cpp/header/any) / [jp](https://ja.cppreference.com/w/cpp/header/any) / [cpprefjp](https://cpprefjp.github.io/reference/any.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/any) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/any) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/any)|since C++17| |[<array>](http://eel.is/c++draft/array.syn)|[en](https://en.cppreference.com/w/cpp/header/array) / [jp](https://ja.cppreference.com/w/cpp/header/array) / [cpprefjp](https://cpprefjp.github.io/reference/array.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/array) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/array) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/array)|since C++11| |[<atomic>](http://eel.is/c++draft/atomics.syn)|[en](https://en.cppreference.com/w/cpp/header/atomic) / [jp](https://ja.cppreference.com/w/cpp/header/atomic) / [cpprefjp](https://cpprefjp.github.io/reference/atomic.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/atomic) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/atomic) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/atomic)|since C++11| -|[<barrier>](http://eel.is/c++draft/barrier.syn)|en / jp / cpprefjp|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/barrier) / MSVC|since C++20| +|[<barrier>](http://eel.is/c++draft/barrier.syn)|[en](https://en.cppreference.com/w/cpp/header/barrier) / [jp](https://ja.cppreference.com/w/cpp/header/barrier) / [cpprefjp](https://cpprefjp.github.io/reference/barrier.html)|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/barrier) / MSVC|since C++20| |[<bit>](http://eel.is/c++draft/bit.syn)|[en](https://en.cppreference.com/w/cpp/header/bit) / [jp](https://ja.cppreference.com/w/cpp/header/bit) / [cpprefjp](https://cpprefjp.github.io/reference/bit.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bit) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/bit) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bit)|since C++20| |[<bitset>](http://eel.is/c++draft/bitset.syn)|[en](https://en.cppreference.com/w/cpp/header/bitset) / [jp](https://ja.cppreference.com/w/cpp/header/bitset) / [cpprefjp](https://cpprefjp.github.io/reference/bitset.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/bitset) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/bitset) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/bitset)|| |[<cassert>](http://eel.is/c++draft/cassert.syn)|[en](https://en.cppreference.com/w/cpp/header/cassert) / [jp](https://ja.cppreference.com/w/cpp/header/cassert) / [cpprefjp](https://cpprefjp.github.io/reference/cassert.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cassert) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cassert) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cassert)|| @@ -37,7 +37,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<complex>](http://eel.is/c++draft/complex.syn)|[en](https://en.cppreference.com/w/cpp/header/complex) / [jp](https://ja.cppreference.com/w/cpp/header/complex) / [cpprefjp](https://cpprefjp.github.io/reference/complex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/complex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/complex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/complex)|| |[<concepts>](http://eel.is/c++draft/concepts.syn)|[en](https://en.cppreference.com/w/cpp/header/concepts) / [jp](https://ja.cppreference.com/w/cpp/header/concepts) / [cpprefjp](https://cpprefjp.github.io/reference/concepts.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/concepts) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/concepts) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/concepts)|since C++20| |[<condition_variable>](http://eel.is/c++draft/condition.variable.syn)|[en](https://en.cppreference.com/w/cpp/header/condition_variable) / [jp](https://ja.cppreference.com/w/cpp/header/condition_variable) / [cpprefjp](https://cpprefjp.github.io/reference/condition_variable.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/condition_variable) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/condition_variable) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/condition_variable)|since C++11| -|[<coroutine>](http://eel.is/c++draft/coroutine.syn)|[en](https://en.cppreference.com/w/cpp/header/coroutine) / jp / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/coroutine) / libc++ / MSVC|since C++20| +|[<coroutine>](http://eel.is/c++draft/coroutine.syn)|[en](https://en.cppreference.com/w/cpp/header/coroutine) / jp / [cpprefjp](https://cpprefjp.github.io/reference/coroutine.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/coroutine) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/coroutine)|since C++20| |[<csetjmp>](http://eel.is/c++draft/csetjmp.syn)|[en](https://en.cppreference.com/w/cpp/header/csetjmp) / [jp](https://ja.cppreference.com/w/cpp/header/csetjmp) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csetjmp) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/csetjmp) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csetjmp)|| |[<csignal>](http://eel.is/c++draft/csignal.syn)|[en](https://en.cppreference.com/w/cpp/header/csignal) / [jp](https://ja.cppreference.com/w/cpp/header/csignal) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/csignal) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/csignal) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/csignal)|| |[<cstdarg>](http://eel.is/c++draft/cstdarg.syn)|[en](https://en.cppreference.com/w/cpp/header/cstdarg) / [jp](https://ja.cppreference.com/w/cpp/header/cstdarg) / cpprefjp|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/c_global/cstdarg) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/cstdarg) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/cstdarg)|| @@ -66,7 +66,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<iostream>](http://eel.is/c++draft/iostream.syn)|[en](https://en.cppreference.com/w/cpp/header/iostream) / [jp](https://ja.cppreference.com/w/cpp/header/iostream) / [cpprefjp](https://cpprefjp.github.io/reference/iostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iostream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iostream)|| |[<istream>](http://eel.is/c++draft/istream.syn)|[en](https://en.cppreference.com/w/cpp/header/istream) / [jp](https://ja.cppreference.com/w/cpp/header/istream) / [cpprefjp](https://cpprefjp.github.io/reference/istream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/istream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/istream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/istream)|| |[<iterator>](http://eel.is/c++draft/iterator.synopsis)|[en](https://en.cppreference.com/w/cpp/header/iterator) / [jp](https://ja.cppreference.com/w/cpp/header/iterator) / [cpprefjp](https://cpprefjp.github.io/reference/iterator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/iterator) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/iterator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/iterator)|| -|[<latch>](http://eel.is/c++draft/latch.syn)|[en](https://en.cppreference.com/w/cpp/header/latch) / jp / cpprefjp|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/latch) / MSVC|since C++20| +|[<latch>](http://eel.is/c++draft/latch.syn)|[en](https://en.cppreference.com/w/cpp/header/latch) / [jp](https://ja.cppreference.com/w/cpp/header/latch) / [cpprefjp](https://cpprefjp.github.io/reference/latch.html)|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/latch) / MSVC|since C++20| |[<limits>](http://eel.is/c++draft/limits.syn)|[en](https://en.cppreference.com/w/cpp/header/limits) / [jp](https://ja.cppreference.com/w/cpp/header/limits) / [cpprefjp](https://cpprefjp.github.io/reference/limits.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/limits) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/limits) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/limits)|| |[<list>](http://eel.is/c++draft/list.syn)|[en](https://en.cppreference.com/w/cpp/header/list) / [jp](https://ja.cppreference.com/w/cpp/header/list) / [cpprefjp](https://cpprefjp.github.io/reference/list.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/list) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/list) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/list)|| |[<locale>](http://eel.is/c++draft/locale.syn)|[en](https://en.cppreference.com/w/cpp/header/locale) / [jp](https://ja.cppreference.com/w/cpp/header/locale) / [cpprefjp](https://cpprefjp.github.io/reference/locale.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/locale) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/locale) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/locale)|| @@ -75,7 +75,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<memory_resource>](http://eel.is/c++draft/mem.res.syn)|[en](https://en.cppreference.com/w/cpp/header/memory_resource) / [jp](https://ja.cppreference.com/w/cpp/header/memory_resource) / [cpprefjp](https://cpprefjp.github.io/reference/memory_resource.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/memory_resource) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/memory_resource)|since C++17| |[<mutex>](http://eel.is/c++draft/mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/mutex) / [jp](https://ja.cppreference.com/w/cpp/header/mutex) / [cpprefjp](https://cpprefjp.github.io/reference/mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/mutex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/mutex)|since C++11| |[<new>](http://eel.is/c++draft/new.syn)|[en](https://en.cppreference.com/w/cpp/header/new) / [jp](https://ja.cppreference.com/w/cpp/header/new) / [cpprefjp](https://cpprefjp.github.io/reference/new.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/new) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/new) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/new)|| -|[<numbers>](http://eel.is/c++draft/numbers.syn)|[en](https://en.cppreference.com/w/cpp/header/numbers) / [jp](https://ja.cppreference.com/w/cpp/header/numbers) / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / libc++ / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numbers)|since C++20| +|[<numbers>](http://eel.is/c++draft/numbers.syn)|[en](https://en.cppreference.com/w/cpp/header/numbers) / [jp](https://ja.cppreference.com/w/cpp/header/numbers) / [cpprefjp](https://cpprefjp.github.io/reference/numbers.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numbers) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/numbers) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numbers)|since C++20| |[<numeric>](http://eel.is/c++draft/numeric.ops.overview)|[en](https://en.cppreference.com/w/cpp/header/numeric) / [jp](https://ja.cppreference.com/w/cpp/header/numeric) / [cpprefjp](https://cpprefjp.github.io/reference/numeric.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/numeric) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/numeric) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/numeric)|| |[<optional>](http://eel.is/c++draft/optional.syn)|[en](https://en.cppreference.com/w/cpp/header/optional) / [jp](https://ja.cppreference.com/w/cpp/header/optional) / [cpprefjp](https://cpprefjp.github.io/reference/optional.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/optional) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/optional)|since C++17| |[<ostream>](http://eel.is/c++draft/ostream.syn)|[en](https://en.cppreference.com/w/cpp/header/ostream) / [jp](https://ja.cppreference.com/w/cpp/header/ostream) / [cpprefjp](https://cpprefjp.github.io/reference/ostream.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ostream) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ostream) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ostream)|| @@ -85,7 +85,7 @@ C++ の規格で定められた標準ライブラリに含まれるヘッダの |[<ratio>](http://eel.is/c++draft/ratio.syn)|[en](https://en.cppreference.com/w/cpp/header/ratio) / [jp](https://ja.cppreference.com/w/cpp/header/ratio) / [cpprefjp](https://cpprefjp.github.io/reference/ratio.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/ratio) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/ratio) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/ratio)|since C++11| |[<regex>](http://eel.is/c++draft/re.syn)|[en](https://en.cppreference.com/w/cpp/header/regex) / [jp](https://ja.cppreference.com/w/cpp/header/regex) / [cpprefjp](https://cpprefjp.github.io/reference/regex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/regex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/regex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/regex)|since C++11| |[<scoped_allocator>](http://eel.is/c++draft/allocator.adaptor.syn)|[en](https://en.cppreference.com/w/cpp/header/scoped_allocator) / [jp](https://ja.cppreference.com/w/cpp/header/scoped_allocator) / [cpprefjp](https://cpprefjp.github.io/reference/scoped_allocator.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/scoped_allocator) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/scoped_allocator) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/scoped_allocator)|since C++11| -|[<semaphore>](http://eel.is/c++draft/semaphore.syn)|[en](https://en.cppreference.com/w/cpp/header/semaphore) / jp / cpprefjp|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/semaphore) / MSVC|since C++20| +|[<semaphore>](http://eel.is/c++draft/semaphore.syn)|[en](https://en.cppreference.com/w/cpp/header/semaphore) / jp / [cpprefjp](https://cpprefjp.github.io/reference/semaphore.html)|libstdc++ / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/semaphore) / MSVC|since C++20| |[<set>](http://eel.is/c++draft/associative.set.syn)|[en](https://en.cppreference.com/w/cpp/header/set) / [jp](https://ja.cppreference.com/w/cpp/header/set) / [cpprefjp](https://cpprefjp.github.io/reference/set.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/set) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/set) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/set)|| |[<shared_mutex>](http://eel.is/c++draft/shared.mutex.syn)|[en](https://en.cppreference.com/w/cpp/header/shared_mutex) / [jp](https://ja.cppreference.com/w/cpp/header/shared_mutex) / [cpprefjp](https://cpprefjp.github.io/reference/shared_mutex.html)|[libstdc++](https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/shared_mutex) / [libc++](https://github.com/llvm/llvm-project/blob/master/libcxx/include/shared_mutex) / [MSVC](https://github.com/microsoft/STL/blob/master/stl/inc/shared_mutex)|since C++14| |[<source_location>](http://eel.is/c++draft/source.location.syn)|[en](https://en.cppreference.com/w/cpp/header/source_location) / [jp](https://ja.cppreference.com/w/cpp/header/source_location) / [cpprefjp](https://cpprefjp.github.io/reference/source_location.html)|libstdc++ / libc++ / MSVC|since C++20| diff --git a/docs/standardization/working-drafts.md b/docs/standardization/working-drafts.md index 5079197..20d2de6 100644 --- a/docs/standardization/working-drafts.md +++ b/docs/standardization/working-drafts.md @@ -12,10 +12,9 @@ C++11 以降は規格書と同等の内容のワーキングドラフトが無 | C++11 | [N3337 (PDF)](http://wg21.link/n3337) / [HTML](https://timsong-cpp.github.io/cppwp/n3337/) | [ISO/IEC 14882:2011](https://www.iso.org/standard/50372.html) | 1338 | 2011-09 | | C++14 | [N4140 (PDF)](http://wg21.link/n4140) / [HTML](https://timsong-cpp.github.io/cppwp/n4140/) | [ISO/IEC 14882:2014](https://www.iso.org/standard/64029.html) | 1358 | 2014-12 | | C++17 | [N4659 (PDF)](http://wg21.link/n4659) / [HTML](https://timsong-cpp.github.io/cppwp/n4659/) | [ISO/IEC 14882:2017](https://www.iso.org/standard/68564.html) | 1605 | 2017-12 | -| C++20 | [N4860 (PDF)](http://wg21.link/n4860) / [HTML](https://timsong-cpp.github.io/cppwp/n4861/) | (未発行) | ? | 2020-?? | +| C++20 | [N4861 (PDF)](http://wg21.link/n4861) / [HTML](https://timsong-cpp.github.io/cppwp/n4861/) | (未発行) | ? | 2020-?? | | C++23 | [N4861 (PDF)](http://wg21.link/n4861) / [HTML](http://eel.is/c++draft/)
    ※最終版ではない | (未発行) | ? | 2023-?? | -- N4860 と N4861 は一部文書レイアウトを除き内容は同じです。 - C++03 は日本語版 (JIS 規格) を無償で閲覧できます - [日本産業標準調査会:データベース検索-JIS検索](https://www.jisc.go.jp/app/jis/general/GnrJISSearch.html) にて「X3014」を検索します From 2d8deaa0f2c90e49c9b4d0df4c7f53957d164cd8 Mon Sep 17 00:00:00 2001 From: Ryo Suzuki Date: Thu, 16 Jul 2020 10:05:34 +0900 Subject: [PATCH 227/457] update --- docs/cppmap_styles.css | Bin 594 -> 800 bytes docs/standardization/images/npaperbot-1.png | Bin 0 -> 44236 bytes docs/standardization/images/npaperbot-2.png | Bin 0 -> 41364 bytes docs/standardization/images/npaperbot-3.png | Bin 0 -> 22532 bytes docs/standardization/images/npaperbot-4.png | Bin 0 -> 29601 bytes docs/standardization/images/npaperbot-5.png | Bin 0 -> 115272 bytes docs/standardization/images/npaperbot-6.png | Bin 0 -> 65080 bytes docs/standardization/images/npaperbot-7.png | Bin 0 -> 110205 bytes docs/standardization/npaperbot.md | 39 ++++++++++++++++++++ mkdocs.yml | 1 + 10 files changed, 40 insertions(+) create mode 100644 docs/standardization/images/npaperbot-1.png create mode 100644 docs/standardization/images/npaperbot-2.png create mode 100644 docs/standardization/images/npaperbot-3.png create mode 100644 docs/standardization/images/npaperbot-4.png create mode 100644 docs/standardization/images/npaperbot-5.png create mode 100644 docs/standardization/images/npaperbot-6.png create mode 100644 docs/standardization/images/npaperbot-7.png create mode 100644 docs/standardization/npaperbot.md diff --git a/docs/cppmap_styles.css b/docs/cppmap_styles.css index 65d0525f1dd00836927a80c6dd8786558491004b..5eee8f680dac191dd0befc0d64ea4ffbe6c0366e 100644 GIT binary patch delta 195 zcmcb_vVd(v5YuECMv3}NhFpep1_g#{23`g(Ag#cV#E{QW!Jx}f%#gv5$dCf$l`~iY z#SMVin4thDr@&wVr9omvK>bNTl^Q@5I$(9kq#lC_gC>JD-1HQNOrXgH3^_m@l?+zq lKn+PiPCi32LpGAKT%a__;7o=*u;qyir3@uNRS<(}82|^e9dQ5v delta 7 OcmZ3$c8O&}5EB3kYXX4) diff --git a/docs/standardization/images/npaperbot-1.png b/docs/standardization/images/npaperbot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..10c8beed926fa240fdd5a0b1e4218d54c95affcb GIT binary patch literal 44236 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%0Dhb;3nIa|6 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 DNd0=R literal 0 HcmV?d00001 diff --git a/docs/standardization/images/npaperbot-3.png b/docs/standardization/images/npaperbot-3.png new file mode 100644 index 0000000000000000000000000000000000000000..b650798f2485724e6bf07de5b1c4f2a12d54ecda GIT binary patch literal 22532 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 literal 0 HcmV?d00001 diff --git a/docs/standardization/images/npaperbot-5.png b/docs/standardization/images/npaperbot-5.png new file mode 100644 index 0000000000000000000000000000000000000000..647fe6775995b71ac4a33711234090c2dd9ec3d0 GIT binary patch literal 115272 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