Skip to content

Commit e58dbef

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 772bf55 commit e58dbef

5 files changed

Lines changed: 180 additions & 11214 deletions

File tree

reference/bitset/bitset/reference.html

Lines changed: 45 additions & 3 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-06-11T14:18:15">
204-
2025年06月11日 14時18分15秒
203+
<span itemprop="datePublished" content="2026-06-10T07:27:25">
204+
2026年06月10日 07時27分25秒
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>
@@ -236,9 +236,14 @@
236236
<span class="w"> </span><span class="n"><i>CONSTEXPR</i></span><span class="w"> </span><span class="o">~</span><span class="n">reference</span><span class="p">()</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span>
237237
<span class="w"> </span><span class="n"><i>CONSTEXPR</i></span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="w"> </span><span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="kt">bool</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span>
238238
<span class="w"> </span><span class="n"><i>CONSTEXPR</i></span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="w"> </span><span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span>
239+
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="w"> </span><span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="kt">bool</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// C++26</span>
239240
<span class="w"> </span><span class="n"><i>CONSTEXPR</i></span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="k">operator</span><span class="o">~</span><span class="p">()</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span>
240241
<span class="w"> </span><span class="n"><i>CONSTEXPR</i></span><span class="w"> </span><span class="k">operator</span><span class="w"> </span><span class="kt">bool</span><span class="p">()</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span>
241242
<span class="w"> </span><span class="n"><i>CONSTEXPR</i></span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="w"> </span><span class="n">flip</span><span class="p">()</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span>
243+
244+
<span class="w"> </span><span class="k">friend</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">swap</span><span class="p">(</span><span class="n">reference</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">reference</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// C++26</span>
245+
<span class="w"> </span><span class="k">friend</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">swap</span><span class="p">(</span><span class="n">reference</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="kt">bool</span><span class="o">&amp;</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// C++26</span>
246+
<span class="w"> </span><span class="k">friend</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">swap</span><span class="p">(</span><span class="kt">bool</span><span class="o">&amp;</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">reference</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// C++26</span>
242247
<span class="w"> </span><span class="p">};</span>
243248
<span class="w"> </span><span class="p">};</span>
244249
<span class="p">}</span>
@@ -247,6 +252,7 @@
247252
<h2>概要</h2>
248253
<p><code>bitset::reference</code>は、<code>bitset</code>の各ビットにアクセスするためのプロキシクラスである。<code>bitset::<a href="op_at.html">operator[]</a></code>で返されるビット情報を取得、書き換えるためにある。</p>
249254
<p>C++23から<code>bitset::reference</code>全メンバ関数への<code>constexpr</code>指定が行われる。</p>
255+
<p>C++26から、<code>const</code>修飾された<code>*this</code>に対する<code>bool</code>からの代入演算子と、<a class="cpprefjp-defined-word" data-desc="実引数依存の名前探索 (Argument Dependent Lookup)。引数の型が所属する名前空間の関数を探索する言語機能">ADL</a>で見つかる非メンバ<code>swap</code>関数が追加され、<code><a href="../../vector/vector.html">vector&lt;bool&gt;::reference</a></code>とインタフェースが統一された。</p>
250256
<h3>メンバ関数</h3>
251257
<table border="1" bordercolor="#888" style="border-collapse:collapse">
252258
<thead>
@@ -268,6 +274,11 @@ <h3>メンバ関数</h3>
268274
<td></td>
269275
</tr>
270276
<tr>
277+
<td><code>operator=(bool x) const</code></td>
278+
<td><code>const</code><code>*this</code>のビット情報を書き換える</td>
279+
<td>C++26</td>
280+
</tr>
281+
<tr>
271282
<td><code>operator~()</code></td>
272283
<td>反転したビットを取得する</td>
273284
<td></td>
@@ -284,6 +295,33 @@ <h3>メンバ関数</h3>
284295
</tr>
285296
</tbody>
286297
</table>
298+
<h3>非メンバ関数</h3>
299+
<table border="1" bordercolor="#888" style="border-collapse:collapse">
300+
<thead>
301+
<tr>
302+
<th>名前</th>
303+
<th>説明</th>
304+
<th>対応バージョン</th>
305+
</tr>
306+
</thead>
307+
<tbody>
308+
<tr>
309+
<td><code>swap(reference x, reference y)</code></td>
310+
<td>2つの参照先のビットを入れ替える</td>
311+
<td>C++26</td>
312+
</tr>
313+
<tr>
314+
<td><code>swap(reference x, bool&amp; y)</code></td>
315+
<td>参照先のビットと<code>bool</code>を入れ替える</td>
316+
<td>C++26</td>
317+
</tr>
318+
<tr>
319+
<td><code>swap(bool&amp; x, reference y)</code></td>
320+
<td><code>bool</code>と参照先のビットを入れ替える</td>
321+
<td>C++26</td>
322+
</tr>
323+
</tbody>
324+
</table>
287325
<h2></h2>
288326
<p><div class="yata" id="a333050fc6cd49b6ef14e8cb4597950e582cef31"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../cassert.html">&lt;cassert&gt;</a></span>
289327
<span class="cp">#include <a href="../../bitset.html">&lt;bitset&gt;</a></span>
@@ -314,6 +352,10 @@ <h3>出力</h3>
314352
<h2>参照</h2>
315353
<ul>
316354
<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2417r2.pdf" target="_blank">P2417R2 A more constexpr bitset</a></li>
355+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3612r1.html" target="_blank">P3612R1 Harmonize proxy-reference operations (LWG 3638 and 4187)</a><ul>
356+
<li>C++26で、<code>const</code>修飾された<code>*this</code>に対する<code>bool</code>からの代入演算子と、<a class="cpprefjp-defined-word" data-desc="実引数依存の名前探索 (Argument Dependent Lookup)。引数の型が所属する名前空間の関数を探索する言語機能">ADL</a>で見つかる非メンバ<code>swap</code>関数が追加された</li>
357+
</ul>
358+
</li>
317359
</ul></div>
318360

319361
</div>

reference/chrono/make24.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ <h2>例</h2>
239239
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">false</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">0h</a></span><span class="p">);</span>
240240

241241
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">);</span>
242-
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1Z</span><span class="n">YWmQvrILAWcxvhEmXkCtmXwqRLjWznQ</span><span class="p">);</span>
242+
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mf">1L</span><span class="n">kZyZqsgnNVrxOIarUGfhbRkdOEKKrgI</span><span class="p">);</span>
243243
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">15h</a></span><span class="p">);</span>
244244
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">11h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">23h</a></span><span class="p">);</span>
245245
<span class="p">}</span>

reference/vector/vector.html

Lines changed: 14 additions & 3 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-06-11T14:15:20">
192-
2025年06月11日 14時15分20秒
191+
<span itemprop="datePublished" content="2026-06-10T07:27:25">
192+
2026年06月10日 07時27分25秒
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>
@@ -677,6 +677,7 @@ <h2><code>vector&lt;bool&gt;</code>特殊化</h2>
677677
<p>この特殊化はメモリ領域を最小化するために提供されていて、各要素は1bitの領域のみを必要とする。</p>
678678
<p><code>vector&lt;bool&gt;::reference</code><code>bool</code>への参照ではなく、領域内の1bitを指す型であり、以下のようなインタフェースである (<code>noexcept</code>はC++11から、<code>constexpr</code>はC++20から付加される)。</p>
679679
<p>C++23には<code>vector&lt;bool&gt;::iterator</code>が出力イテレータとなるために、<code>vector&lt;bool&gt;::reference</code><code>const</code>修飾を持つ<code>bool</code>からの代入演算子が追加され、<a href="../iterator/indirectly_writable.html"><code>indirectly_writable&lt;vector&lt;bool&gt;::iterator, bool&gt;</code></a>がモデルを満たすようになった。</p>
680+
<p>C++26では、<a class="cpprefjp-defined-word" data-desc="実引数依存の名前探索 (Argument Dependent Lookup)。引数の型が所属する名前空間の関数を探索する言語機能">ADL</a>で見つかる非メンバ<code>swap</code>関数が追加され、<code><a href="../bitset/bitset/reference.html">bitset&lt;N&gt;::reference</a></code>とインタフェースが統一された。これにあわせて、従来の<code>static</code>メンバ関数版の<code>swap</code>は非推奨となった。</p>
680681
<p><div class="codehilite"><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">vector</span><span class="o">&lt;</span><span class="kt">bool</span><span class="o">&gt;::</span><span class="n">reference</span><span class="w"> </span><span class="p">{</span>
681682
<span class="w"> </span><span class="k">friend</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">vector</span><span class="p">;</span>
682683
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="n">reference</span><span class="p">();</span><span class="w"> </span><span class="c1">// コンストラクタは非公開</span>
@@ -688,6 +689,12 @@ <h2><code>vector&lt;bool&gt;</code>特殊化</h2>
688689
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="w"> </span><span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// vector&lt;bool&gt;のビットからの代入</span>
689690
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">reference</span><span class="o">&amp;</span><span class="w"> </span><span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="kt">bool</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// *thisがconst時のboolからの代入(C++23)</span>
690691
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">flip</span><span class="p">()</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// ビットの反転</span>
692+
693+
<span class="w"> </span><span class="k">friend</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">swap</span><span class="p">(</span><span class="n">reference</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">reference</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// 2つのビットの交換(C++26)</span>
694+
<span class="w"> </span><span class="k">friend</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">swap</span><span class="p">(</span><span class="n">reference</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="kt">bool</span><span class="o">&amp;</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// ビットとboolの交換(C++26)</span>
695+
<span class="w"> </span><span class="k">friend</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">swap</span><span class="p">(</span><span class="kt">bool</span><span class="o">&amp;</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">reference</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// boolとビットの交換(C++26)</span>
696+
697+
<span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">swap</span><span class="p">(</span><span class="n">reference</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="n">reference</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// ビットの交換(C++26から非推奨)</span>
691698
<span class="p">};</span>
692699
</code></pre></div>
693700
</p>
@@ -939,6 +946,10 @@ <h2>参照</h2>
939946
<li>C++23から、Range・コンテナ、<code>pair</code><code>tuple</code>のフォーマット出力、および文字・文字列のデバッグ指定 (<code>"?"</code>) が追加された</li>
940947
</ul>
941948
</li>
949+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3612r1.html" target="_blank">P3612R1 Harmonize proxy-reference operations (LWG 3638 and 4187)</a><ul>
950+
<li>C++26で、<code>vector&lt;bool&gt;::reference</code><a class="cpprefjp-defined-word" data-desc="実引数依存の名前探索 (Argument Dependent Lookup)。引数の型が所属する名前空間の関数を探索する言語機能">ADL</a>で見つかる非メンバ<code>swap</code>関数が追加され、従来の<code>static</code>メンバ関数版<code>swap</code>が非推奨となった</li>
951+
</ul>
952+
</li>
942953
</ul></div>
943954

944955
</div>

0 commit comments

Comments
 (0)