22<feed xmlns =" http://www.w3.org/2005/Atom" >
33 <title >cpprefjp - C++日本語リファレンス</title >
44 <link href =" https://cpprefjp.github.io" />
5- <updated >2026-04-08T04:49:16.011726 </updated >
6- <id >5bec7f05-410c-43a4-93e4-b4aa45b228df </id >
5+ <updated >2026-04-08T06:22:30.111064 </updated >
6+ <id >43b662a8-795f-4156-8e3a-f623804d7419 </id >
77
88
9+ <entry >
10+ <title >制約式内での畳み込み式の順序付け [P2963R3] -- コンセプト依存制約 (concept-dependent constraint) に言及</title >
11+ <link href =" https://cpprefjp.github.io/lang/cpp26/ordering_of_constraints_involving_fold_expressions.html" />
12+ <id >edbf3675bf26bacecccba127cd750576516a0b49:lang/cpp26/ordering_of_constraints_involving_fold_expressions.md</id >
13+ <updated >2026-04-08T15:17:59+09:00</updated >
14+
15+ <summary type =" html" >< pre>< code> diff --git a/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md b/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md
16+ index 0a743f65a..50f79c673 100644
17+ --- a/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md
18+ +++ b/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md
19+ @@ -44,7 +44,7 @@ C++26では、制約の種類として新たに「折りたたみ展開制約 (f
20+
21+ ## 仕様
22+ ### 折りたたみ展開制約 (fold expanded constraint)
23+ -C++26では、制約の種類として連言 (conjunction)、選言 (disjunction)、原子制約 (atomic constraint) に加え、4番目の種類として「折りたたみ展開制約 (fold expanded constraint)」が導入される。
24+ +C++26では、制約の種類として連言 (conjunction)、選言 (disjunction)、原子制約 (atomic constraint) に加え、「折りたたみ展開制約 (fold expanded constraint)」(P2963R3) および「コンセプト依存制約 (concept-dependent constraint)」(P2841R7) が新たに導入される。ここでは折りたたみ展開制約について説明する。
25+
26+ 畳み込み式 `(E & amp;& amp; ...)` や `(E || ...)` が制約の正規化において処理される際、通常は折りたたみ展開制約として正規化される。折りたたみ展開制約は、制約`E`の正規形と畳み込み演算子 (`& amp;& amp;`または`||`) の組から構成される。
27+
28+ < /code>< /pre> </summary >
29+
30+ <author >
31+ <name >Akira Takahashi</name >
32+ <email >faithandbrave@gmail.com</email >
33+ </author >
34+ </entry >
35+
936 <entry >
1037 <title >制約式内での畳み込み式の順序付け [P2963R3] -- 制約の畳み込み式について説明を見直し</title >
1138 <link href =" https://cpprefjp.github.io/lang/cpp26/ordering_of_constraints_involving_fold_expressions.html" />
@@ -271,66 +298,4 @@ index af8300055..3634cc4c2 100644
271298 </author >
272299 </entry >
273300
274- <entry >
275- <title >コンセプトと変数テンプレートをテンプレート引数として渡せるようにする [P2841R7] -- コード修飾を追加</title >
276- <link href =" https://cpprefjp.github.io/lang/cpp26/concept_and_variable-template_template-parameters.html" />
277- <id >b2a6ab890935f23f70faacf5aac5d43c84a0fd9e:lang/cpp26/concept_and_variable-template_template-parameters.md</id >
278- <updated >2026-04-07T22:06:31+09:00</updated >
279-
280- <summary type =" html" >< pre>< code> diff --git a/lang/cpp26/concept_and_variable-template_template-parameters.md b/lang/cpp26/concept_and_variable-template_template-parameters.md
281- index 6decc9f00..6775b7bcb 100644
282- --- a/lang/cpp26/concept_and_variable-template_template-parameters.md
283- +++ b/lang/cpp26/concept_and_variable-template_template-parameters.md
284- @@ -58,6 +58,7 @@ concept decays_to = C& lt;std::decay_t& lt;T& gt;& gt;;
285- template & lt;decays_to& lt;std::copyable& gt; T& gt;
286- auto f(T& amp;& amp; x);
287- ```
288- +* std::copyable[link /reference/concepts/copyable.md]
289-
290- ### 変数テンプレートテンプレートパラメータ
291- テンプレートパラメータリストにおいて、`auto`キーワードで変数テンプレートを受け取るパラメータを宣言できる。
292- < /code>< /pre> </summary >
293-
294- <author >
295- <name >Akira Takahashi</name >
296- <email >faithandbrave@gmail.com</email >
297- </author >
298- </entry >
299-
300- <entry >
301- <title >制約式内での畳み込み式の順序付け [P2963R3] -- コード修飾を追加</title >
302- <link href =" https://cpprefjp.github.io/lang/cpp26/ordering_of_constraints_involving_fold_expressions.html" />
303- <id >b2a6ab890935f23f70faacf5aac5d43c84a0fd9e:lang/cpp26/ordering_of_constraints_involving_fold_expressions.md</id >
304- <updated >2026-04-07T22:06:31+09:00</updated >
305-
306- <summary type =" html" >< pre>< code> diff --git a/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md b/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md
307- index f86aa70d5..3b64d8b34 100644
308- --- a/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md
309- +++ b/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md
310- @@ -36,6 +36,8 @@ void g(T...);
311- // C++26: C& lt;T& gt;はA& lt;T& gt;を包摂するため、2番目のオーバーロードが選択される
312- g(std::vector{1, 2, 3});
313- ```
314- +* std::is_move_constructible_v[link /reference/type_traits/is_move_constructible.md]
315- +* std::is_copy_constructible_v[link /reference/type_traits/is_copy_constructible.md]
316-
317- C++26では、`& amp;& amp;`による畳み込み式は個別の制約の連言として、`||`による畳み込み式は個別の制約の選言として正規化され、通常の原子制約と同じ包摂規則が適用される。
318-
319- @@ -73,7 +75,7 @@ f();
320- ## この機能が必要になった背景・経緯
321- コンセプトと畳み込み式は、可変引数テンプレートの制約を簡潔に記述するために組み合わせて使われることが多い。しかし、C++23では畳み込み式が原子制約として扱われるため、概念的に明らかな包摂関係が認識されず、オーバーロード解決が曖昧になる問題があった。
322-
323- -たとえば、`std::ranges::bidirectional_range`と`std::ranges::random_access_range`は非可変引数テンプレートでは正しく順序付けられるが、可変引数テンプレートで畳み込み式を使用すると順序付けが失われていた。この提案はその問題を解決する。
324- +たとえば、[`std::ranges::bidirectional_range`](/reference/ranges/bidirectional_range.md)と[`std::ranges::random_access_range`](/reference/ranges/random_access_range.md)は非可変引数テンプレートでは正しく順序付けられるが、可変引数テンプレートで畳み込み式を使用すると順序付けが失われていた。この提案はその問題を解決する。
325-
326- この提案はP2841R0 (コンセプトと変数テンプレートのテンプレートテンプレートパラメータ) から派生したもので、畳み込み式のパターンが通常の制約式である場合を扱う。パターンがコンセプトテンプレートパラメータである場合はP2841で扱われる。
327-
328- < /code>< /pre> </summary >
329-
330- <author >
331- <name >Akira Takahashi</name >
332- <email >faithandbrave@gmail.com</email >
333- </author >
334- </entry >
335-
336301</feed >
0 commit comments