Skip to content

Commit 0590ee1

Browse files
Preview PR 1606: edbf3672a459f7
1 parent b09f978 commit 0590ee1

4 files changed

Lines changed: 35 additions & 70 deletions

File tree

gen/pull/1606/PREVIEW.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# PR [\#1606](https://github.com/cpprefjp/site/pull/1606) プレビュー
2-
- ⌚ 更新時刻: 2026-04-08 13:49:17 JST
2+
- ⌚ 更新時刻: 2026-04-08 15:22:31 JST
33
- 🔍 [プレビュー (HTML)](https://cpprefjp.github.io/site/gen/pull/1606)
44
- 📈 [プレビュー生成記録](https://github.com/cpprefjp/site/actions?query=event%3Apull_request_target+branch%3Afix_fold_expr)
5-
- **⫯** ソースの変更: [`2a459f7..2c3c633`](https://github.com/cpprefjp/site/compare/2a459f75b5f94a02ae8a24d3229201c2616e1f59..2c3c63353be5e909bca47c711d13df2474747bf2)
5+
- **⫯** ソースの変更: [`2a459f7..edbf367`](https://github.com/cpprefjp/site/compare/2a459f75b5f94a02ae8a24d3229201c2616e1f59..edbf3675bf26bacecccba127cd750576516a0b49)
66

77
## 変更記事一覧 (1件)
88

gen/pull/1606/lang/cpp26/ordering_of_constraints_involving_fold_expressions.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2026-04-08T04:43:04">
192-
2026年04月08日 04時43分04秒
191+
<span itemprop="datePublished" content="2026-04-08T06:17:59">
192+
2026年04月08日 06時17分59秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -245,7 +245,7 @@ <h2>概要</h2>
245245
<p>C++26では、制約の種類として新たに「折りたたみ展開制約 (fold expanded constraint)」が導入され、畳み込み式を含む制約の間で包摂関係が認識されるようになる。</p>
246246
<h2>仕様</h2>
247247
<h3>折りたたみ展開制約 (fold expanded constraint)</h3>
248-
<p>C++26では、制約の種類として連言 (conjunction)、選言 (disjunction)、原子制約 (atomic constraint) に加え、4番目の種類として「折りたたみ展開制約 (fold expanded constraint)」が導入される</p>
248+
<p>C++26では、制約の種類として連言 (conjunction)、選言 (disjunction)、原子制約 (atomic constraint) に加え、「折りたたみ展開制約 (fold expanded constraint)」(P2963R3) および「コンセプト依存制約 (concept-dependent constraint)」(P2841R7) が新たに導入される。ここでは折りたたみ展開制約について説明する</p>
249249
<p>畳み込み式 <code>(E &amp;&amp; ...)</code><code>(E || ...)</code> が制約の正規化において処理される際、通常は折りたたみ展開制約として正規化される。折りたたみ展開制約は、制約<code>E</code>の正規形と畳み込み演算子 (<code>&amp;&amp;</code>または<code>||</code>) の組から構成される。</p>
250250
<p>ただし、<code>E</code>が展開されていないコンセプトテンプレートパラメータパック (unexpanded concept template parameter pack) を含む場合は、そのパックの要素数<code>N</code>に基づいて<code>E_0 Op ... Op E_{N-1}</code>の形に展開され、連言または選言にまで分解される。これはP2841R7 (コンセプトテンプレートパラメータ) との連携による動作である。</p>
251251
<h3>包摂の規則</h3>

gen/pull/1606/rss.xml

Lines changed: 29 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,37 @@
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">&lt;pre&gt;&lt;code&gt;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;&amp;amp; ...)` や `(E || ...)` が制約の正規化において処理される際、通常は折りたたみ展開制約として正規化される。折りたたみ展開制約は、制約`E`の正規形と畳み込み演算子 (`&amp;amp;&amp;amp;`または`||`) の組から構成される。
27+
28+
&lt;/code&gt;&lt;/pre&gt;</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">&lt;pre&gt;&lt;code&gt;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&amp;lt;std::decay_t&amp;lt;T&amp;gt;&amp;gt;;
285-
template &amp;lt;decays_to&amp;lt;std::copyable&amp;gt; T&amp;gt;
286-
auto f(T&amp;amp;&amp;amp; x);
287-
```
288-
+* std::copyable[link /reference/concepts/copyable.md]
289-
290-
### 変数テンプレートテンプレートパラメータ
291-
テンプレートパラメータリストにおいて、`auto`キーワードで変数テンプレートを受け取るパラメータを宣言できる。
292-
&lt;/code&gt;&lt;/pre&gt;</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">&lt;pre&gt;&lt;code&gt;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&amp;lt;T&amp;gt;はA&amp;lt;T&amp;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;&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-
&lt;/code&gt;&lt;/pre&gt;</summary>
329-
330-
<author>
331-
<name>Akira Takahashi</name>
332-
<email>faithandbrave@gmail.com</email>
333-
</author>
334-
</entry>
335-
336301
</feed>

gen/pull/1606/sitemap.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1809,7 +1809,7 @@
18091809

18101810
<url>
18111811
<loc>https://cpprefjp.github.io/lang/cpp26/ordering_of_constraints_involving_fold_expressions.html</loc>
1812-
<lastmod>2026-04-08T13:43:04+09:00</lastmod>
1812+
<lastmod>2026-04-08T15:17:59+09:00</lastmod>
18131813
<changefreq>daily</changefreq>
18141814
<priority>0.7</priority>
18151815
</url>

0 commit comments

Comments
 (0)