Skip to content

Commit d1ca1cd

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent a391b42 commit d1ca1cd

6 files changed

Lines changed: 3595 additions & 4402 deletions

File tree

lang/cpp26/feature_test_macros.html

Lines changed: 8 additions & 2 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-05-21T06:03:06">
192-
2026年05月21日 06時03分06秒
191+
<span itemprop="datePublished" content="2026-05-22T03:23:59">
192+
2026年05月22日 03時23分59秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -881,6 +881,12 @@ <h3>ライブラリ</h3>
881881
<td><code><a href="../../reference/ranges.html">&lt;ranges&gt;</a></code></td>
882882
</tr>
883883
<tr>
884+
<td><code>__cpp_lib_ranges_filter</code></td>
885+
<td><code>202603L</code></td>
886+
<td><code><a href="../../reference/ranges/filter_view.html">std::ranges::filter_view</a></code>に、入力Rangeに対する<code>const</code>版の<code><a href="../../reference/ranges/filter_view/begin.html">begin()</a></code>/<code><a href="../../reference/ranges/filter_view/end.html">end()</a></code>を追加</td>
887+
<td><code><a href="../../reference/ranges.html">&lt;ranges&gt;</a></code></td>
888+
</tr>
889+
<tr>
884890
<td><code>__cpp_lib_ranges_generate_random</code></td>
885891
<td><code>202403L</code></td>
886892
<td><code><a href="../../reference/random.html">&lt;random&gt;</a></code>に、乱数列を生成する<code><a href="../../reference/random/generate_random.html">std::ranges::generate_random()</a></code>関数を追加</td>

reference/ranges/filter_view.html

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

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2025-08-31T10:06:36">
192-
2025年08月31日 10時06分36秒
191+
<span itemprop="datePublished" content="2026-05-22T03:23:59">
192+
2026年05月22日 03時23分59秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">Raclamusi</span>
196+
<span itemprop="name">Akira Takahashi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -237,7 +237,11 @@ <h2>概要</h2>
237237
</li>
238238
<li><code><a href="filter_view/begin.html">begin</a></code>は償却定数時間で実行できなければならないため、<code><a href="filter_view/begin.html">begin</a></code>の値はキャッシュされる。</li>
239239
</ul>
240-
<p><code>filter_view</code>の要素を書き換えてもよいが、書き換えた後の要素が<code>Pred</code>を満たさない場合は<a class="cpprefjp-defined-word" data-desc="未定義の動作。処理系は予期せぬ動作をする可能性がある。要するに動作保証対象外。undefined behavior (UB)。" href="../../implementation-compliance.html#dfn-undefined-behavior">未定義動作</a>を引き起こす。</p>
240+
<p><code>filter_view</code>の要素を書き換えてもよいが、書き換えた結果<code>Pred</code>を満たさない場合は<a class="cpprefjp-defined-word" data-desc="未定義の動作。処理系は予期せぬ動作をする可能性がある。要するに動作保証対象外。undefined behavior (UB)。" href="../../implementation-compliance.html#dfn-undefined-behavior">未定義動作</a>を引き起こす可能性がある。具体的な条件は言語バージョンによって異なる:</p>
241+
<ul>
242+
<li>C++20 : 書き換えた後の要素が<code>Pred</code>を満たさない場合は<a class="cpprefjp-defined-word" data-desc="未定義の動作。処理系は予期せぬ動作をする可能性がある。要するに動作保証対象外。undefined behavior (UB)。" href="../../implementation-compliance.html#dfn-undefined-behavior">未定義動作</a></li>
243+
<li>C++26 : 元のRangeが<code><a href="forward_range.html">forward_range</a></code>であり、書き換えた後の要素が次に<code>Pred</code>の評価を受けた際に <code>Pred</code>を満たさない場合に限り<a class="cpprefjp-defined-word" data-desc="未定義の動作。処理系は予期せぬ動作をする可能性がある。要するに動作保証対象外。undefined behavior (UB)。" href="../../implementation-compliance.html#dfn-undefined-behavior">未定義動作</a> (要素が再評価されない限り問題なし、と緩和された)</li>
244+
</ul>
241245
<h3>Rangeコンセプト</h3>
242246
<table border="1" bordercolor="#888" style="border-collapse:collapse">
243247
<thead>
@@ -472,6 +476,10 @@ <h2>参照</h2>
472476
<li><a href="https://timsong-cpp.github.io/cppwp/n4861/range.filter" target="_blank">N4861 24.7.4 Filter view</a></li>
473477
<li><a href="https://techbookfest.org/product/5134506308665344" target="_blank">C++20 ranges</a></li>
474478
<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2367r0.html" target="_blank">P2367R0 Remove misuses of list-initialization from Clause 24</a> (本提案文書はC++20に遡って適用されている)</li>
479+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3725r3.pdf" target="_blank">P3725R3 Filter View Extensions for Safer Use</a><ul>
480+
<li>C++26で、入力Range (非forward) に対する<code>const</code>版の<code><a href="filter_view/begin.html">begin()</a></code><code><a href="filter_view/end.html">end()</a></code>を追加。また、要素書き換えによる<a class="cpprefjp-defined-word" data-desc="未定義の動作。処理系は予期せぬ動作をする可能性がある。要するに動作保証対象外。undefined behavior (UB)。" href="../../implementation-compliance.html#dfn-undefined-behavior">未定義動作</a>の文言を緩和</li>
481+
</ul>
482+
</li>
475483
</ul></div>
476484

477485
</div>

reference/ranges/filter_view/begin.html

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,12 @@
200200

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-08-31T10:06:36">
204-
2025年08月31日 10時06分36秒
203+
<span itemprop="datePublished" content="2026-05-22T03:23:59">
204+
2026年05月22日 03時23分59秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
208-
<span itemprop="name">Raclamusi</span>
208+
<span itemprop="name">Akira Takahashi</span>
209209
</span>
210210
が更新
211211
</small></p>
@@ -225,16 +225,29 @@
225225
<div class="col-sm-12 content-body">
226226

227227
<div class="identifier-type">function</div><div class="header">&lt;ranges&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std::ranges">std::ranges::</span><span class="class" title="class filter_view">filter_view::</span><span class="token">begin</span><span class="cpp cpp20" title="C++20で追加">(C++20)</span></h1>
228-
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">constexpr</span><span class="w"> </span><span class="n"><a href="iterator.html">iterator</a></span><span class="w"> </span><span class="nf">begin</span><span class="p">();</span>
228+
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">constexpr</span><span class="w"> </span><span class="n"><a href="iterator.html">iterator</a></span><span class="w"> </span><span class="nf">begin</span><span class="p">();</span><span class="w"> </span><span class="c1">// (1) C++20</span>
229+
<span class="k">constexpr</span><span class="w"> </span><span class="n"><a href="iterator.html">iterator</a></span><span class="o">&lt;</span><span class="nb">false</span><span class="o">&gt;</span><span class="w"> </span><span class="n">begin</span><span class="p">();</span><span class="w"> </span><span class="c1">// (1) C++26</span>
230+
231+
<span class="k">constexpr</span><span class="w"> </span><span class="n"><a href="iterator.html">iterator</a></span><span class="o">&lt;</span><span class="nb">true</span><span class="o">&gt;</span><span class="w"> </span><span class="n">begin</span><span class="p">()</span><span class="w"> </span><span class="k">const</span>
232+
<span class="w"> </span><span class="k">requires</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="../input_range.html">input_range</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">V</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n"><a href="../forward_range.html">forward_range</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">V</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&amp;&amp;</span>
233+
<span class="w"> </span><span class="n"><a href="../../iterator/indirect_unary_predicate.html">indirect_unary_predicate</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">Pred</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">V</span><span class="o">&gt;&gt;</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++26</span>
229234
</code></pre></div>
230235
</p>
231236
<h2>概要</h2>
232237
<p><code>view</code>の先頭要素を指すイテレータを取得する。</p>
238+
<ul>
239+
<li>(1) : 非<code>const</code></li>
240+
<li>(2) : <code>const</code>版。元のRangeが<code><a href="../input_range.html">input_range</a></code>であり、かつ<code><a href="../forward_range.html">forward_range</a></code>ではない場合に限り提供される</li>
241+
</ul>
233242
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Preconditions。関数呼び出し時に満たされていると関数が想定する条件。満たさなければ未定義の動作。契約属性の`[[expects]]`に相当">事前条件</a></h2>
234243
<p><code>pred_.<a href="../../optional/optional/has_value.html">has_value</a>()</code><code>true</code>であること。</p>
235244
<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2>
236245
<p><code>{*this, <a href="../../algorithm/ranges_find_if.html">ranges::find_if</a>(base_, <a href="../../functional/ref.html">ref</a>(*pred_))}</code></p>
237-
<p><code><a href="../range.html">range</a></code>のモデルとなるためにはこの関数が償却定数時間で実行できなければならないため、値はキャッシュされる。</p>
246+
<h2>備考</h2>
247+
<ul>
248+
<li>(1) : <code><a href="../range.html">range</a></code>のモデルとなるためにはこの関数が償却定数時間で実行できなければならないため、値はキャッシュされる</li>
249+
<li>(2) : この関数は値をキャッシュしない</li>
250+
</ul>
238251
<h2></h2>
239252
<p><div class="yata" id="60fcfeba6fe2e1189451654191e6a3666dd12bd1"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../ranges.html">&lt;ranges&gt;</a></span>
240253
<span class="cp">#include <a href="../../vector.html">&lt;vector&gt;</a></span>
@@ -270,6 +283,10 @@ <h2>参照</h2>
270283
<ul>
271284
<li><a href="https://timsong-cpp.github.io/cppwp/n4861/range.filter" target="_blank">N4861 24.7.4 Filter view</a></li>
272285
<li><a href="https://timsong-cpp.github.io/cppwp/n4950/range.filter" target="_blank">N4950 26.7.8 Filter view</a></li>
286+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3725r3.pdf" target="_blank">P3725R3 Filter View Extensions for Safer Use</a><ul>
287+
<li>C++26で、(2)の<code>const</code><a class="cpprefjp-defined-word" data-desc="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合">オーバーロード</a>を追加 (入力Rangeの場合の<code>const</code>イテレーションをサポート)</li>
288+
</ul>
289+
</li>
273290
</ul></div>
274291

275292
</div>

reference/ranges/filter_view/end.html

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@
200200

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-07-08T15:33:39">
204-
2025年07月08日 15時33分39秒
203+
<span itemprop="datePublished" content="2026-05-22T03:23:59">
204+
2026年05月22日 03時23分59秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -225,16 +225,31 @@
225225
<div class="col-sm-12 content-body">
226226

227227
<div class="identifier-type">function</div><div class="header">&lt;ranges&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std::ranges">std::ranges::</span><span class="class" title="class filter_view">filter_view::</span><span class="token">end</span><span class="cpp cpp20" title="C++20で追加">(C++20)</span></h1>
228-
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">end</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
228+
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">end</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// (1) C++20</span>
229229
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="../common_range.html">common_range</a></span><span class="o">&lt;</span><span class="n">V</span><span class="o">&gt;</span><span class="p">)</span>
230230
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n"><a href="iterator.html">iterator</a></span><span class="p">{</span><span class="o">*</span><span class="k">this</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../end.html">ranges::end</a></span><span class="p">(</span><span class="n">base_</span><span class="p">)};</span>
231231
<span class="w"> </span><span class="k">else</span>
232232
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n"><a href="sentinel.html">sentinel</a></span><span class="p">{</span><span class="o">*</span><span class="k">this</span><span class="p">};</span>
233233
<span class="p">}</span>
234+
235+
<span class="k">constexpr</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">end</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// (1) C++26</span>
236+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="../common_range.html">common_range</a></span><span class="o">&lt;</span><span class="n">V</span><span class="o">&gt;</span><span class="p">)</span>
237+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n"><a href="iterator.html">iterator</a></span><span class="o">&lt;</span><span class="nb">false</span><span class="o">&gt;</span><span class="p">{</span><span class="o">*</span><span class="k">this</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../end.html">ranges::end</a></span><span class="p">(</span><span class="n">base_</span><span class="p">)};</span>
238+
<span class="w"> </span><span class="k">else</span>
239+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n"><a href="sentinel.html">sentinel</a></span><span class="o">&lt;</span><span class="nb">false</span><span class="o">&gt;</span><span class="p">{</span><span class="o">*</span><span class="k">this</span><span class="p">};</span>
240+
<span class="p">}</span>
241+
242+
<span class="k">constexpr</span><span class="w"> </span><span class="n"><a href="sentinel.html">sentinel</a></span><span class="o">&lt;</span><span class="nb">true</span><span class="o">&gt;</span><span class="w"> </span><span class="n">end</span><span class="p">()</span><span class="w"> </span><span class="k">const</span>
243+
<span class="w"> </span><span class="k">requires</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="../input_range.html">input_range</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">V</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="n"><a href="../forward_range.html">forward_range</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">V</span><span class="o">&gt;</span><span class="w"> </span><span class="o">&amp;&amp;</span>
244+
<span class="w"> </span><span class="n"><a href="../../iterator/indirect_unary_predicate.html">indirect_unary_predicate</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">Pred</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">V</span><span class="o">&gt;&gt;</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) C++26</span>
234245
</code></pre></div>
235246
</p>
236247
<h2>概要</h2>
237248
<p>番兵を取得する。</p>
249+
<ul>
250+
<li>(1) : 非<code>const</code></li>
251+
<li>(2) : <code>const</code>版。元のRangeが<code><a href="../input_range.html">input_range</a></code>であり、かつ<code><a href="../forward_range.html">forward_range</a></code>ではない場合に限り提供される</li>
252+
</ul>
238253
<h2></h2>
239254
<p><div class="yata" id="a90b935747756abc15131610f13697e39a7dd217"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../ranges.html">&lt;ranges&gt;</a></span>
240255
<span class="cp">#include <a href="../../vector.html">&lt;vector&gt;</a></span>
@@ -272,6 +287,10 @@ <h2>参照</h2>
272287
<ul>
273288
<li><a href="https://timsong-cpp.github.io/cppwp/n4861/range.filter" target="_blank">N4861 24.7.4 Filter view</a></li>
274289
<li><a href="https://timsong-cpp.github.io/cppwp/n4950/range.filter" target="_blank">N4950 26.7.8 Filter view</a></li>
290+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3725r3.pdf" target="_blank">P3725R3 Filter View Extensions for Safer Use</a><ul>
291+
<li>C++26で、(2)の<code>const</code><a class="cpprefjp-defined-word" data-desc="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合">オーバーロード</a>を追加 (入力Rangeの場合の<code>const</code>イテレーションをサポート)</li>
292+
</ul>
293+
</li>
275294
</ul></div>
276295

277296
</div>

0 commit comments

Comments
 (0)