Skip to content

Commit 1938285

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 10a7acf commit 1938285

26 files changed

Lines changed: 1103 additions & 80410 deletions

File tree

lang/cpp11/constexpr.html

Lines changed: 10 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-08-08T23:27:00+09:00">
193-
2026年08月08日 23時27分00秒 (JST)
192+
datetime="2026-08-26T10:30:51+09:00">
193+
2026年08月26日 10時30分51秒 (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>
@@ -353,6 +353,9 @@ <h3>constexprメンバ関数</h3>
353353
<li>仮想関数は、<code>constexpr</code>関数として定義できない</li>
354354
</ul>
355355
<h2>備考</h2>
356+
<h3>標準ライブラリ関数への<code>constexpr</code>指定</h3>
357+
<p>標準ライブラリの関数に<code>constexpr</code>が付くかどうかは、規格が明示的に要求している場合に限られる。処理系が独自の判断で、規格が要求していない標準ライブラリ関数のシグニチャに<code>constexpr</code>を付けることは許可されていない。</p>
358+
<p>これは、ある処理系では定数式で使えるが別の処理系では使えない、といった移植性の問題を防ぐためである。</p>
356359
<h3>浮動小数点数演算での注意</h3>
357360
<p><code>constexpr</code>関数での浮動小数点数は、コンパイル時に実行するとコンパイル環境で計算が行われ、実行時に実行すると実行環境で計算が行われる。これによって、コンパイル時と実行時で、結果が異なる可能性がある。</p>
358361
<h3>コンパイル時と実行時で、統一したエラー報告</h3>
@@ -435,6 +438,10 @@ <h2>参照</h2>
435438
<li>ゼロ割りの扱い、再帰回数の規定</li>
436439
</ul>
437440
</li>
441+
<li><a href="https://cplusplus.github.io/LWG/issue2013" target="_blank">LWG Issue 2013. Do library implementers have the freedom to add <code>constexpr</code>?</a><ul>
442+
<li>C++14で、処理系が規格の要求を超えて標準ライブラリ関数に<code>constexpr</code>を付けることは許可されないと規定された。処理系ごとに定数式で使える関数が異なると、移植性のあるプログラムを書けなくなるため</li>
443+
</ul>
444+
</li>
438445
</ul></div>
439446

440447
</div>

reference/algorithm/nth_element.html

Lines changed: 8 additions & 3 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-25T12:11:17+09:00">
193-
2026年08月25日 12時11分17秒 (JST)
192+
datetime="2026-08-26T10:32:02+09:00">
193+
2026年08月26日 10時32分02秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -284,7 +284,7 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成
284284
<li><code>RandomAccessIterator</code><code>ValueSwappable</code> の要件を満たしている必要がある。<code>*first</code> の型は <code>MoveConstructible</code><code>MoveAssignable</code> の要件を満たしている必要がある。</li>
285285
</ul>
286286
<h2>効果</h2>
287-
<p><code>nth_element()</code> を呼び出した後、<code>nth</code> が指している位置の要素は、全ての範囲がソートされた場合の位置にある要素になる。そして、<code>[first,nth)</code> にあるイテレータ <code>i</code> と、<code>[nth,last)</code> にあるイテレータ <code>j</code> について、<code>!(*j &lt; *i)</code> または <code>comp(*j, *i) == false</code> になる。</p>
287+
<p><code>nth_element()</code> を呼び出した後、<code>nth</code> が指している位置の要素は、全ての範囲がソートされた場合の位置にある要素になる。ただし<code>nth == last</code>である場合、この規定は適用されない。そして、<code>[first,nth)</code> にあるイテレータ <code>i</code> と、<code>[nth,last)</code> にあるイテレータ <code>j</code> について、<code>!(*j &lt; *i)</code> または <code>comp(*j, *i) == false</code> になる。</p>
288288
<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2>
289289
<p>なし</p>
290290
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a></h2>
@@ -332,6 +332,11 @@ <h2>参照</h2>
332332
</ul>
333333
</li>
334334
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2150" target="_blank">LWG Issue 2150. Unclear specification of <code>find_end</code></a></li>
335+
<li><a href="https://cplusplus.github.io/LWG/issue2339" target="_blank">LWG Issue 2339. Wording issue in <code>nth_element</code></a><ul>
336+
<li>C++14で、<code>nth == last</code>の場合には<code>nth</code>が指す位置の要素についての規定が適用されないことが明確化された</li>
337+
<li>この修正は欠陥報告(DR)であり、C++98以降に遡及して適用される。<code>nth == last</code>は終端イテレータであり指す要素が存在しないため、元の規定はそもそも意味を成さず、処理系は当初から現在の動作を採っていたため</li>
338+
</ul>
339+
</li>
335340
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0574r1.html" target="_blank">P0574R1 Algorithm Complexity Constraints and Parallel Overloads</a></li>
336341
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0879r0.html" target="_blank">P0879R0 Constexpr for <code>swap</code> and <code>swap</code> related functions</a></li>
337342
</ul></div>

reference/algorithm/partition_copy.html

Lines changed: 8 additions & 3 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-13T17:55:32+09:00">
193-
2026年08月13日 17時55分32秒 (JST)
192+
datetime="2026-08-26T10:35:22+09:00">
193+
2026年08月26日 10時35分22秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -280,7 +280,7 @@ <h2>概要</h2>
280280
<p>この関数は、入力の<a class="cpprefjp-defined-word" data-desc="2つのイテレータで表現される半開区間を表す。C++20からイテレータと番兵で異なる型であっても指定可能になる">イテレータ範囲</a>のうち、条件を満たす要素を出力<a class="cpprefjp-defined-word" data-desc="2つのイテレータで表現される半開区間を表す。C++20からイテレータと番兵で異なる型であっても指定可能になる">イテレータ範囲</a><code>out_true</code>、条件を満たさない要素を出力<a class="cpprefjp-defined-word" data-desc="2つのイテレータで表現される半開区間を表す。C++20からイテレータと番兵で異なる型であっても指定可能になる">イテレータ範囲</a><code>out_false</code>にコピーする。</p>
281281
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Constraints。関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件">テンプレートパラメータ制約</a></h2>
282282
<ul>
283-
<li><code>InputIterator</code> の value type は <code>Assignable</code> で、<code>out_true</code><code>out_false</code><code>OutputIterator</code> へ書き込み可能で、<code>Predicate</code> の引数型へ変換可能であること</li>
283+
<li><code>InputIterator</code> の value type は <code>CopyAssignable</code> で、<code>out_true</code><code>out_false</code><code>OutputIterator</code> へ書き込み可能で、<code>Predicate</code> の引数型へ変換可能であること</li>
284284
</ul>
285285
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Preconditions。関数呼び出し時に満たされていると関数が想定する条件。満たさなければ未定義の動作。契約属性の`[[expects]]`に相当">事前条件</a></h2>
286286
<ul>
@@ -355,6 +355,11 @@ <h2>参照</h2>
355355
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2666.pdf" target="_blank">N2666 More STL algorithms (revision 2)</a></li>
356356
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html" target="_blank">P0202R3 Add Constexpr Modifiers to Functions in <code>&lt;algorithm&gt;</code> and <code>&lt;utility&gt;</code> Headers</a></li>
357357
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html" target="_blank">P0467R2 Iterator Concerns for Parallel Algorithms</a></li>
358+
<li><a href="https://cplusplus.github.io/LWG/issue2357" target="_blank">LWG Issue 2357. Remaining "Assignable" requirement</a><ul>
359+
<li>C++14で、要件の名前が、C++98から使われていた<code>Assignable</code>から<code>CopyAssignable</code>へ改められた</li>
360+
<li>この修正は欠陥報告(DR)であり、C++11以降に遡及して適用される。C++11で名前付き要件を改名した際に本関数への適用が漏れた編集上の誤りの修正であり、要件の内容そのものは変わらないため</li>
361+
</ul>
362+
</li>
358363
<li><a href="https://cplusplus.github.io/LWG/issue4465" target="_blank">LWG Issue 4465. §[alg.partitions] Clarify <em>Returns:</em> element</a><ul>
359364
<li>C++26で、<a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a><code>pair</code>が、それぞれ<code>out_true</code><code>out_false</code>の各出力範囲へコピーされた最後の要素の次を指すイテレータであることが明確化された</li>
360365
</ul>

reference/atomic/atomic_thread_fence.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="2025-04-03T13:51:18+09:00">
193-
2025年04月03日 13時51分18秒 (JST)
192+
datetime="2026-08-26T10:37:45+09:00">
193+
2026年08月26日 10時37分45秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
197-
<span itemprop="name">yoh</span>
197+
<span itemprop="name">Akira Takahashi</span>
198198
</span>
199199
が更新
200200
</small></p>
@@ -330,6 +330,15 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価
330330
<p>なし</p>
331331
<h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a></h2>
332332
<p>投げない</p>
333+
<h2>備考</h2>
334+
<ul>
335+
<li>アトミックオブジェクト<code>M</code>に対するアトミック変更<code>A</code><code>B</code>について、以下のいずれかが成り立つ場合、<code>B</code><code>M</code>の変更順序において<code>A</code><a class="cpprefjp-defined-word" data-desc="happens after。(異なるスレッド間の) 2つの操作の実行順序を規定する関係">よりも後に発生する</a>。ここで<code>S</code><code><a href="memory_order.html">memory_order_seq_cst</a></code>操作の全順序である。<ul>
336+
<li><code>A</code><code><a href="memory_order.html">memory_order_seq_cst</a></code>フェンス<code>X</code>よりも前に順序付けられており、かつ<code>X</code><code>S</code>において<code>B</code>に先行する</li>
337+
<li><code><a href="memory_order.html">memory_order_seq_cst</a></code>フェンス<code>Y</code><code>B</code>よりも前に順序付けられており、かつ<code>A</code><code>S</code>において<code>Y</code>に先行する</li>
338+
<li><code><a href="memory_order.html">memory_order_seq_cst</a></code>フェンス<code>X</code><code>Y</code>が存在し、<code>A</code><code>X</code>よりも前に、<code>Y</code><code>B</code>よりも前に順序付けられており、かつ<code>X</code><code>S</code>において<code>Y</code>に先行する</li>
339+
</ul>
340+
</li>
341+
</ul>
333342
<h2></h2>
334343
<p><div class="yata" id="ed09239a05451e366368baf084bf84be6de3bbd0"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../iostream.html">&lt;iostream&gt;</a></span>
335344
<span class="cp">#include <a href="../atomic.html">&lt;atomic&gt;</a></span>
@@ -378,6 +387,11 @@ <h3>処理系</h3>
378387
<h2>参照</h2>
379388
<ul>
380389
<li><a href="https://www.justsoftwaresolutions.co.uk/threading/implementing_dekkers_algorithm_with_fences.html" target="_blank">Implementing Dekker's algorithm with Fences</a></li>
390+
<li><a href="https://cplusplus.github.io/LWG/issue2130" target="_blank">LWG Issue 2130. Missing ordering constraints</a><ul>
391+
<li>C++14で、<code><a href="memory_order.html">memory_order_seq_cst</a></code>フェンスによる変更順序の制約が整理され、フェンスが片側にのみ存在する場合についても順序が規定された</li>
392+
<li>この修正は欠陥報告(DR)であり、C++11以降に遡及して適用される。元の規定は両側にフェンスがある場合しか扱っておらず、フェンスと<code><a href="memory_order.html">memory_order_seq_cst</a></code>操作を混在させたときの順序が規定から抜けていた記載漏れの補完であるため</li>
393+
</ul>
394+
</li>
381395
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html" target="_blank">P3309R3 <code>constexpr atomic</code> and <code>atomic_ref</code></a><ul>
382396
<li>C++26で<code>constexpr</code>に対応した</li>
383397
</ul>

reference/codecvt/codecvt_utf16.html

Lines changed: 10 additions & 3 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="2025-07-09T00:33:39+09:00">
193-
2025年07月09日 00時33分39秒 (JST)
192+
datetime="2026-08-26T10:38:29+09:00">
193+
2026年08月26日 10時38分29秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -241,7 +241,9 @@
241241
<span class="w"> </span><span class="k">template</span><span class="w"> </span><span class="o">&lt;</span><span class="k">class</span><span class="w"> </span><span class="nc">Elem</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="n">Maxcode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mh">0x10ffff</span><span class="p">,</span>
242242
<span class="w"> </span><span class="n"><a href="codecvt_mode.html">codecvt_mode</a></span><span class="w"> </span><span class="n">Mode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n"><a href="codecvt_mode.html">codecvt_mode</a></span><span class="p">)</span><span class="mi">0</span><span class="o">&gt;</span>
243243
<span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">codecvt_utf16</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n"><a href="../locale/codecvt.html">codecvt</a></span><span class="o">&lt;</span><span class="n">Elem</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="p">,</span><span class="w"> </span><span class="kt">mbstate_t</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
244-
<span class="w"> </span><span class="c1">// 未規定...</span>
244+
<span class="w"> </span><span class="k">public</span><span class="o">:</span>
245+
<span class="w"> </span><span class="k">explicit</span><span class="w"> </span><span class="n">codecvt_utf16</span><span class="p">(</span><span class="n"><a href="../cstddef/size_t.html">size_t</a></span><span class="w"> </span><span class="n">refs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
246+
<span class="w"> </span><span class="o">~</span><span class="n">codecvt_utf16</span><span class="p">();</span>
245247
<span class="w"> </span><span class="p">};</span>
246248
<span class="p">}</span>
247249
</code></pre></div>
@@ -301,6 +303,11 @@ <h3>処理系</h3>
301303
<h2>参照</h2>
302304
<ul>
303305
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2401.htm" target="_blank">N2401 Code Conversion Facets for the Standard C++ Library</a></li>
306+
<li><a href="https://cplusplus.github.io/LWG/issue2229" target="_blank">LWG Issue 2229. Standard code conversion facets underspecified</a><ul>
307+
<li>C++14で、クラス定義が「<a class="cpprefjp-defined-word" data-desc="未規定の動作。事前の断りなく処理系によって異なる動作をする" href="../../implementation-compliance.html#dfn-unspecified-behavior">未規定</a>」ではなく、コンストラクタとデストラクタを持つことが明示された</li>
308+
<li>この修正は欠陥報告(DR)であり、C++11以降に遡及して適用される。利用者がこれらのファセットを構築できることが規定上不明確だったものの明文化であり、処理系は当初からこれらを提供していたため</li>
309+
</ul>
310+
</li>
304311
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0618r0.html" target="_blank">P0618R0 Deprecating <code>&lt;codecvt&gt;</code></a></li>
305312
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2871r3.pdf" target="_blank">P2871R3 Remove Deprecated Unicode Conversion Facets from C++26</a></li>
306313
</ul></div>

0 commit comments

Comments
 (0)