Skip to content

Commit 771b027

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 38594f8 commit 771b027

8 files changed

Lines changed: 3418 additions & 2851 deletions

File tree

lang/cpp26/contracts.html

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,12 +189,12 @@
189189
<p class="text-right"><small>
190190
最終更新日時:
191191
<time itemprop="datePublished" class="js-local-time"
192-
datetime="2026-07-22T16:08:23+09:00">
193-
2026年07月22日 16時08分23秒 (JST)
192+
datetime="2026-08-28T12:11:39+09:00">
193+
2026年08月28日 12時11分39秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
197-
<span itemprop="name">rotarymars</span>
197+
<span itemprop="name">Akira Takahashi</span>
198198
</span>
199199
が更新
200200
</small></p>
@@ -571,6 +571,16 @@ <h4>ハンドラの定義</h4>
571571
</code></pre></div>
572572
</p>
573573
<p>この関数を定義することで、デフォルトの契約違反ハンドラをオーバーライドできる。</p>
574+
<p>ただし、契約違反ハンドラを置き換えられるかどうかは<a class="cpprefjp-defined-word" data-desc="処理系定義の動作。処理系によって事前に定めた動作をする" href="../../implementation-compliance.html#dfn-implementation-defined-behavior">処理系定義</a>である。置き換えられない処理系でこの関数を宣言した場合、そのプログラムは<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../implementation-compliance.html#dfn-ill-formed">不適格</a>となる(<a class="cpprefjp-defined-word" data-desc="処理系は規則違反に対してエラーメッセージや警告を出さないかもしれない" href="../../implementation-compliance.html#dfn-no-diagnostic-required">診断不要</a>)。置き換えられるかどうかは、<code><a href="../../reference/contracts.html">&lt;contracts&gt;</a></code>ヘッダで定義される機能テストマクロ<code><a href="../../reference/contracts/cpp_lib_replaceable_contract_violation_handler.html">__cpp_lib_replaceable_contract_violation_handler</a></code>によって判定できる。このマクロは、置き換えられる場合に<code>202603L</code>、置き換えられない場合に<code>0</code>となる。</p>
575+
<p><div class="codehilite"><pre><span></span><code><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;contracts&gt;</span>
576+
577+
<span class="cp">#if __cpp_lib_replaceable_contract_violation_handler</span>
578+
<span class="kt">void</span><span class="w"> </span><span class="nf">handle_contract_violation</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">contracts</span><span class="o">::</span><span class="n">contract_violation</span><span class="o">&amp;</span><span class="w"> </span><span class="n">violation</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
579+
<span class="w"> </span><span class="c1">// ...</span>
580+
<span class="p">}</span>
581+
<span class="cp">#endif</span>
582+
</code></pre></div>
583+
</p>
574584
<h4>contract_violation情報</h4>
575585
<p><code>std::contracts::contract_violation</code>オブジェクトは、契約違反に関する以下の情報を提供する:</p>
576586
<ul>
@@ -880,6 +890,10 @@ <h2><a href="#relative-page" id="relative-page">関連項目</a></h2>
880890
<h2>参照</h2>
881891
<ul>
882892
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2900r14.pdf" target="_blank">P2900R14 <code>Contracts for C++</code></a></li>
893+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3886r0.pdf" target="_blank">P3886R0 Wording for AT1-057</a><ul>
894+
<li>C++26で、契約違反ハンドラを置き換えられるかを検出する機能テストマクロ<code>__cpp_lib_replaceable_contract_violation_handler</code>が追加された</li>
895+
</ul>
896+
</li>
883897
</ul></div>
884898

885899
</div>

lang/cpp26/feature_test_macros.html

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,8 @@
189189
<p class="text-right"><small>
190190
最終更新日時:
191191
<time itemprop="datePublished" class="js-local-time"
192-
datetime="2026-08-28T10:51:15+09:00">
193-
2026年08月28日 10時51分15秒 (JST)
192+
datetime="2026-08-28T12:11:39+09:00">
193+
2026年08月28日 12時11分39秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -973,6 +973,12 @@ <h3>ライブラリ</h3>
973973
<td><code><a href="../../reference/meta.html">&lt;meta&gt;</a></code></td>
974974
</tr>
975975
<tr>
976+
<td><code><a href="../../reference/contracts/cpp_lib_replaceable_contract_violation_handler.html">__cpp_lib_replaceable_contract_violation_handler</a></code></td>
977+
<td><code>202603L</code> or <code>0</code></td>
978+
<td><a href="contracts.html">契約違反ハンドラ</a>を置き換えられるかを検出する(置き換えられる場合は<code>202603L</code>、置き換えられない場合は<code>0</code></td>
979+
<td><code><a href="../../reference/contracts.html">&lt;contracts&gt;</a></code></td>
980+
</tr>
981+
<tr>
976982
<td><code>__cpp_lib_saturation_arithmetic</code></td>
977983
<td><code>202603L</code></td>
978984
<td><code><a href="../../reference/numeric.html">&lt;numeric&gt;</a></code>に飽和演算 (Saturation Arithmetic) として<code><a href="../../reference/numeric/saturating_add.html">std::saturating_add()</a></code>などの関数を追加</td>
@@ -1260,6 +1266,10 @@ <h2>参照</h2>
12601266
<li>C++26で、<code>__cpp_lib_ranges_as_const</code><code>202311L</code>に更新された</li>
12611267
</ul>
12621268
</li>
1269+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3886r0.pdf" target="_blank">P3886R0 Wording for AT1-057</a><ul>
1270+
<li>C++26で、<code>__cpp_lib_replaceable_contract_violation_handler</code>が追加された</li>
1271+
</ul>
1272+
</li>
12631273
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3371r5.html" target="_blank">P3371R5 Fix C++26 BLAS rank updates consistency</a><ul>
12641274
<li>C++26で<code>__cpp_lib_linalg</code><code>202511L</code>に更新された</li>
12651275
</ul>

reference/contracts.html

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@
177177
<p class="text-right"><small>
178178
最終更新日時:
179179
<time itemprop="datePublished" class="js-local-time"
180-
datetime="2026-08-14T15:05:52+09:00">
181-
2026年08月14日 15時05分52秒 (JST)
180+
datetime="2026-08-28T12:11:39+09:00">
181+
2026年08月28日 12時11分39秒 (JST)
182182
</time>
183183
<br/>
184184
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -306,10 +306,16 @@ <h2>機能テストマクロ</h2>
306306
<tbody>
307307
<tr>
308308
<td><code>__cpp_lib_contracts</code></td>
309-
<td>???</td>
309+
<td><code>202502L</code></td>
310310
<td><code>&lt;contracts&gt;</code>ヘッダが利用可能かを検出する</td>
311311
<td>C++26</td>
312312
</tr>
313+
<tr>
314+
<td><code><a href="contracts/cpp_lib_replaceable_contract_violation_handler.html">__cpp_lib_replaceable_contract_violation_handler</a></code></td>
315+
<td><code>202603L</code> or <code>0</code></td>
316+
<td>契約違反ハンドラを置き換えられるかを検出する。置き換えられる場合は<code>202603L</code>、置き換えられない場合は<code>0</code>となる</td>
317+
<td>C++26</td>
318+
</tr>
313319
</tbody>
314320
</table>
315321
<p>言語機能(<code>pre</code><code>post</code><code>contract_assert</code>構文)の検出には<code>__cpp_contracts</code>マクロを使用する。ライブラリと言語機能は異なるベンダーから提供される可能性があるため、別々のマクロが用意されている。</p>
@@ -331,6 +337,10 @@ <h2>関連項目</h2>
331337
<h2>参照</h2>
332338
<ul>
333339
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2900r14.pdf" target="_blank">P2900R14 Contracts for C++</a></li>
340+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3886r0.pdf" target="_blank">P3886R0 Wording for AT1-057</a><ul>
341+
<li>C++26で、契約違反ハンドラを置き換えられるかを検出する機能テストマクロ<code>__cpp_lib_replaceable_contract_violation_handler</code>が追加された</li>
342+
</ul>
343+
</li>
334344
</ul></div>
335345

336346
</div>

0 commit comments

Comments
 (0)