Skip to content

Commit 0b4e274

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent e42a2f6 commit 0b4e274

File tree

3 files changed

+1762
-596
lines changed

3 files changed

+1762
-596
lines changed

reference/iterator/contiguous_iterator.html

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2025-04-20T13:01:25">
192-
2025年04月20日 13時01分25秒
191+
<span itemprop="datePublished" content="2025-04-23T00:49:37">
192+
2025年04月23日 00時49分37秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -234,10 +234,13 @@ <h2>概要</h2>
234234
<p>しかし、C++26からは、この制限が緩和され、<code>std::to_address</code>関数を使用して得られたポインタに対してさらなるポインタ演算を行うことができるようになった。</p>
235235
<h2>モデル</h2>
236236
<p><code>a, b</code>を間接参照可能なイテレータ、<code>c</code>を間接参照不可能なイテレータとし、<code>b</code><code>a</code>から、<code>c</code><code>b</code>からそれぞれ到達可能であるとする。そのような型<code>I</code>のイテレータ<code>a, b, c</code><code><a href="iter_difference_t.html">iter_difference_t&lt;I&gt;</a></code>の示す型<code>D</code>について次の条件を満たす場合に限って、型<code>I</code><code>contiguous_iterator</code>のモデルである。</p>
237+
<h2>要件</h2>
237238
<ul>
238-
<li><code>to_address(a) == addressof(*a)</code></li>
239-
<li><code>to_address(b) == to_address(a) + D(b - a)</code></li>
240-
<li><code>to_address(c) == to_address(a) + D(c - a)</code></li>
239+
<li>C++26: このイテレータの範囲<code>[i, s)</code>はポインタ範囲<code>[to_address(i), to_address(i + ranges::distance(i, s)))</code>に置き換えて使用することが実装に許可される<ul>
240+
<li>注:このイテレータをアルゴリズム適用した場合、イテレータのインクリメントが一回しか起こらない可能性があり、個々のインクリメントに対して副作用を起こすことを期待してはならない</li>
241+
<li>備考:連続イテレータの範囲に対する操作として、<code>std::copy()</code>の実装が<code>std::memmove()</code>の呼び出しで完了するなど、イテレータを一つずつ進めるのではなくメモリ操作で高速実装されることを許可するものである</li>
242+
</ul>
243+
</li>
241244
</ul>
242245
<h2></h2>
243246
<p><div class="yata" id="2516e7bc3757fab165bcd4a6a32afed19c8caf76"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>

0 commit comments

Comments
 (0)