Skip to content

Commit fc3f4dd

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent efc2d73 commit fc3f4dd

File tree

24 files changed

+268
-2021
lines changed

24 files changed

+268
-2021
lines changed

lang/cpp23/lifetime_extension_in_range_based_for_loop.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ <h3>出力</h3>
252252
</code></pre></p>
253253
<h2>この機能が必要になった背景・経緯</h2>
254254
<p>範囲for文をより安全に使えるように改善するために仕様が変更された。</p>
255-
<p>従来の仕様では、範囲for文を使う際に気が付きにくいダングリング参照を発生させる可能性があった</p>
255+
<p>従来の仕様では、範囲for文を使う際に気が付きにくい<a class="cpprefjp-defined-word" data-desc="dangling。寿命が尽きた無効なオブジェクトやメモリ領域を、ポインタ・参照・イテレータなどが指し続けている状態のこと。これらにアクセスすると未定義の動作を引き起こす">ダングリング</a>参照を発生させる可能性があった</p>
256256
<p><div class="yata" id="1cbda0cb754e2e35fbde33b3633362c25d9a2eca"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../reference/vector.html">&lt;vector&gt;</a></span>
257257
<span class="cp">#include <a href="../../reference/string.html">&lt;string&gt;</a></span>
258258
<span class="cp">#include <a href="../../reference/iostream.html">&lt;iostream&gt;</a></span>
@@ -293,8 +293,8 @@ <h2>この機能が必要になった背景・経緯</h2>
293293
<span class="p">}</span>
294294
</code></pre></div>
295295
</div></p>
296-
<p>ここで、<code>r</code> を初期化しているのは <code>getstr()</code> の返した一時オブジェクトではなく、その0番目の要素の参照である。そのため一時オブジェクト <code>std::vector&lt;std::string&gt;</code> はこの行の終わりに破棄され、<code>r</code> はダングリング参照となる</p>
297-
<p>C++23では、<code>getstr()</code> の呼び出しが <code>for-range-initializer</code> の中にあるため、返った一時オブジェクトは参照 <code>r</code> と同じ寿命になる。したがってダングリング参照は発生せず、このコードは安全である。</p>
296+
<p>ここで、<code>r</code> を初期化しているのは <code>getstr()</code> の返した一時オブジェクトではなく、その0番目の要素の参照である。そのため一時オブジェクト <code>std::vector&lt;std::string&gt;</code> はこの行の終わりに破棄され、<code>r</code> <a class="cpprefjp-defined-word" data-desc="dangling。寿命が尽きた無効なオブジェクトやメモリ領域を、ポインタ・参照・イテレータなどが指し続けている状態のこと。これらにアクセスすると未定義の動作を引き起こす">ダングリング</a>参照となる</p>
297+
<p>C++23では、<code>getstr()</code> の呼び出しが <code>for-range-initializer</code> の中にあるため、返った一時オブジェクトは参照 <code>r</code> と同じ寿命になる。したがって<a class="cpprefjp-defined-word" data-desc="dangling。寿命が尽きた無効なオブジェクトやメモリ領域を、ポインタ・参照・イテレータなどが指し続けている状態のこと。これらにアクセスすると未定義の動作を引き起こす">ダングリング</a>参照は発生せず、このコードは安全である。</p>
298298
<h3><a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>規定について</h3>
299299
<p>"一時オブジェクトが関数の引数として生成された場合" とは、次のサンプルコードにおける <code>f2(T t)</code> の実引数 <code>t</code> として、呼び出される関数のスコープで生成されるような場合である。</p>
300300
<p><div class="codehilite"><pre><span></span><code><span class="c1">// P2718R0より引用</span>

reference/algorithm/minmax.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成
257257
</ul>
258258
<h2>備考</h2>
259259
<ul>
260-
<li>(1), (2) : 引数に一時オブジェクトを与えた場合、<code>minmax</code>の呼び出しを含む<a class="cpprefjp-defined-word" data-desc="完結式。full-expression。主に他の式の部分式ではない式。要するに一番外側の式。">完全式</a>の評価が終わる時点で、返された参照の寿命が切れる(ダングリング)ことに注意:</li>
260+
<li>(1), (2) : 引数に一時オブジェクトを与えた場合、<code>minmax</code>の呼び出しを含む<a class="cpprefjp-defined-word" data-desc="完結式。full-expression。主に他の式の部分式ではない式。要するに一番外側の式。">完全式</a>の評価が終わる時点で、返された参照の寿命が切れる(<a class="cpprefjp-defined-word" data-desc="dangling。寿命が尽きた無効なオブジェクトやメモリ領域を、ポインタ・参照・イテレータなどが指し続けている状態のこと。これらにアクセスすると未定義の動作を引き起こす">ダングリング</a>)ことに注意:</li>
261261
</ul>
262262
<p><div class="yata" id="4e36c2ca397921e3900d650cf34bd712b2ba0f02"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../cassert.html">&lt;cassert&gt;</a></span>
263263
<span class="cp">#include <a href="../algorithm.html">&lt;algorithm&gt;</a></span>

reference/algorithm/ranges_minmax.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成
276276
</ul>
277277
<h2>備考</h2>
278278
<ul>
279-
<li>(1) : 引数に一時オブジェクトを与えた場合、<code>minmax</code>の呼び出しを含む<a class="cpprefjp-defined-word" data-desc="完結式。full-expression。主に他の式の部分式ではない式。要するに一番外側の式。">完全式</a>の評価が終わる時点で、返された参照の寿命が切れる(ダングリング)ことに注意:</li>
279+
<li>(1) : 引数に一時オブジェクトを与えた場合、<code>minmax</code>の呼び出しを含む<a class="cpprefjp-defined-word" data-desc="完結式。full-expression。主に他の式の部分式ではない式。要するに一番外側の式。">完全式</a>の評価が終わる時点で、返された参照の寿命が切れる(<a class="cpprefjp-defined-word" data-desc="dangling。寿命が尽きた無効なオブジェクトやメモリ領域を、ポインタ・参照・イテレータなどが指し続けている状態のこと。これらにアクセスすると未定義の動作を引き起こす">ダングリング</a>)ことに注意:</li>
280280
</ul>
281281
<p><div class="yata" id="0550f3a2bfe7d7d847df13d025284717a02a34ea"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../cassert.html">&lt;cassert&gt;</a></span>
282282
<span class="cp">#include <a href="../algorithm.html">&lt;algorithm&gt;</a></span>

reference/concepts/Invoke.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ <h2>要件(C++20)</h2>
286286
<li>すべての <em>call-wrapper</em> は、<em>Cpp17MoveConstructible</em> かつ <em>Cpp17Destructible</em> でなければならない。</li>
287287
</ol>
288288
<h2>要件(C++23差分)</h2>
289-
<p>C++20 における 2. について、次の文言を項目の最後に追加する。この変更は、<code>R</code>が参照かつ<em>INVOKE</em>の実行結果が<code>R</code>に束縛されることで寿命が延長される場合にダングリング参照が作成されてしまう事例を検出するための要件である</p>
289+
<p>C++20 における 2. について、次の文言を項目の最後に追加する。この変更は、<code>R</code>が参照かつ<em>INVOKE</em>の実行結果が<code>R</code>に束縛されることで寿命が延長される場合に<a class="cpprefjp-defined-word" data-desc="dangling。寿命が尽きた無効なオブジェクトやメモリ領域を、ポインタ・参照・イテレータなどが指し続けている状態のこと。これらにアクセスすると未定義の動作を引き起こす">ダングリング</a>参照が作成されてしまう事例を検出するための要件である</p>
290290
<ul>
291291
<li><code><a href="../type_traits/reference_converts_from_temporary.html">reference_converts_from_temporary_v</a>&lt;R, decltype(</code><em>INVOKE</em><code>(f, t1, t2, …, tN))&gt; == true</code>の場合、<em>INVOKE</em><code>&lt;R&gt;(f, t1, t2, …, tN)</code><a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../implementation-compliance.html#dfn-ill-formed">不適格</a></li>
292292
</ul>

reference/functional/function_ref.html

Lines changed: 4 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="2026-02-11T06:05:02">
192-
2026年02月11日 06時05分02秒
191+
<span itemprop="datePublished" content="2026-04-02T05:29:58">
192+
2026年04月02日 05時29分58秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">yoh</span>
196+
<span itemprop="name">teruyamato0731</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -246,7 +246,7 @@ <h3><code>function</code>ファミリとの比較</h3>
246246
<li>対象オブジェクトの束縛タイミングは、構築時または呼び出し時のいずれもサポートする。</li>
247247
</ul>
248248
</li>
249-
<li>ダングリング(dangling)参照を避けるため、左辺値(lvalue)のみを取り扱う。</li>
249+
<li><a class="cpprefjp-defined-word" data-desc="dangling。寿命が尽きた無効なオブジェクトやメモリ領域を、ポインタ・参照・イテレータなどが指し続けている状態のこと。これらにアクセスすると未定義の動作を引き起こす">ダングリング</a>参照を避けるため、左辺値(lvalue)のみを取り扱う。</li>
250250
</ul>
251251
<h2>メンバ関数</h2>
252252
<table border="1" bordercolor="#888" style="border-collapse:collapse">

0 commit comments

Comments
 (0)