|
189 | 189 | <p class="text-right"><small> |
190 | 190 | 最終更新日時: |
191 | 191 | <time itemprop="datePublished" class="js-local-time" |
192 | | - datetime="2026-08-28T12:11:39+09:00"> |
193 | | - 2026年08月28日 12時11分39秒 (JST) |
| 192 | + datetime="2026-09-04T11:37:58+09:00"> |
| 193 | + 2026年09月04日 11時37分58秒 (JST) |
194 | 194 | </time> |
195 | 195 | <br/> |
196 | 196 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
@@ -366,7 +366,10 @@ <h4>複数の宣言</h4> |
366 | 366 | </code></pre></div> |
367 | 367 | </p> |
368 | 368 | <h4>仮想関数</h4> |
369 | | -<p>仮想関数に<a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Preconditions。関数呼び出し時に満たされていると関数が想定する条件。満たさなければ未定義の動作。契約属性の`[[expects]]`に相当">事前条件</a>または<a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Postconditions。関数を実行後に満たされている条件。契約属性の`[[ensures]]`に相当">事後条件</a>の指定子を付けることは<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../implementation-compliance.html#dfn-ill-formed">不適格</a>(ill-formed)である。仮想関数への<code>pre</code>と<code>post</code>のサポートは、将来の拡張として提案される予定である。</p> |
| 369 | +<p>仮想関数に<a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Preconditions。関数呼び出し時に満たされていると関数が想定する条件。満たさなければ未定義の動作。契約属性の`[[expects]]`に相当">事前条件</a>または<a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Postconditions。関数を実行後に満たされている条件。契約属性の`[[ensures]]`に相当">事後条件</a>の指定子を付けることは<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../implementation-compliance.html#dfn-ill-formed">不適格</a>(ill-formed)である。</p> |
| 370 | +<ul> |
| 371 | +<li>C++29 : <a href="../cpp29/contracts_for_virtual_functions.html">仮想関数への事前条件・事後条件の指定が許可された</a></li> |
| 372 | +</ul> |
370 | 373 | <p><div class="codehilite"><pre><span></span><code><span class="k">struct</span><span class="w"> </span><span class="nc">Base</span><span class="w"> </span><span class="p">{</span> |
371 | 374 | <span class="w"> </span><span class="c1">// エラー:仮想関数に契約指定子を適用できない</span> |
372 | 375 | <span class="w"> </span><span class="k">virtual</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">compute</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="k">pre</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> |
@@ -886,6 +889,7 @@ <h2><a href="#relative-page" id="relative-page">関連項目</a></h2> |
886 | 889 | <li><code><a href="../../reference/contracts/assertion_kind.html">std::contracts::assertion_kind</a></code></li> |
887 | 890 | <li><code><a href="../../reference/contracts/evaluation_semantic.html">std::contracts::evaluation_semantic</a></code></li> |
888 | 891 | <li><code><a href="../../reference/contracts/detection_mode.html">std::contracts::detection_mode</a></code></li> |
| 892 | +<li><a href="../cpp29/contracts_for_virtual_functions.html">C++29 仮想関数への事前条件・事後条件の指定を許可</a></li> |
889 | 893 | </ul> |
890 | 894 | <h2>参照</h2> |
891 | 895 | <ul> |
|
0 commit comments