|
216 | 216 | <div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">std</span> <span class="p">{</span>
|
217 | 217 | <span class="k">template</span><span class="o"><</span><span class="n"><a href="input_or_output_iterator.html">input_or_output_iterator</a></span> <span class="n">I</span><span class="p">,</span> <span class="n"><a href="sentinel_for.html">sentinel_for</a></span><span class="o"><</span><span class="n">I</span><span class="o">></span> <span class="n">S</span><span class="o">></span>
|
218 | 218 | <span class="n">requires</span> <span class="p">(</span><span class="o">!</span><span class="n"><a href="../concepts/same_as.html">same_as</a></span><span class="o"><</span><span class="n">I</span><span class="p">,</span> <span class="n">S</span><span class="o">></span> <span class="o">&&</span> <span class="n"><a href="../concepts/copyable.html">copyable</a></span><span class="o"><</span><span class="n">I</span><span class="o">></span><span class="p">)</span>
|
219 |
| - <span class="k">class</span> <span class="nc">common_iterator</span> <span class="p">{</span> |
| 219 | + <span class="k">class</span> <span class="nc"><a href="">common_iterator</a></span> <span class="p">{</span> |
220 | 220 |
|
221 | 221 | <span class="k">private</span><span class="o">:</span>
|
222 | 222 | <span class="n"><a href="../variant/variant.html">variant</a></span><span class="o"><</span><span class="n">I</span><span class="p">,</span> <span class="n">S</span><span class="o">></span> <span class="n">v_</span><span class="p">;</span> <span class="c1">// 説明専用メンバ変数</span>
|
|
225 | 225 |
|
226 | 226 | <span class="c1">// <a href="incrementable_traits.html">incrementable_traits</a>にアダプトする</span>
|
227 | 227 | <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">I</span><span class="p">,</span> <span class="k">class</span> <span class="nc">S</span><span class="o">></span>
|
228 |
| - <span class="k">struct</span> <span class="n"><a href="incrementable_traits.html">incrementable_traits</a></span><span class="o"><</span><span class="n">common_iterator</span><span class="o"><</span><span class="n">I</span><span class="p">,</span> <span class="n">S</span><span class="o">>></span> <span class="p">{</span> |
| 228 | + <span class="k">struct</span> <span class="n"><a href="incrementable_traits.html">incrementable_traits</a></span><span class="o"><</span><span class="n"><a href="">common_iterator</a></span><span class="o"><</span><span class="n">I</span><span class="p">,</span> <span class="n">S</span><span class="o">>></span> <span class="p">{</span> |
229 | 229 | <span class="k">using</span> <span class="n">difference_type</span> <span class="o">=</span> <span class="n"><a href="iter_difference_t.html">iter_difference_t</a></span><span class="o"><</span><span class="n">I</span><span class="o">></span><span class="p">;</span>
|
230 | 230 | <span class="p">};</span>
|
231 | 231 |
|
232 | 232 | <span class="c1">// <a href="iterator_traits.html">iterator_traits</a>にアダプトする</span>
|
233 | 233 | <span class="k">template</span><span class="o"><</span><span class="n"><a href="input_iterator.html">input_iterator</a></span> <span class="n">I</span><span class="p">,</span> <span class="k">class</span> <span class="nc">S</span><span class="o">></span>
|
234 |
| - <span class="k">struct</span> <span class="n"><a href="iterator_traits.html">iterator_traits</a></span><span class="o"><</span><span class="n">common_iterator</span><span class="o"><</span><span class="n">I</span><span class="p">,</span> <span class="n">S</span><span class="o">>></span> <span class="p">{</span> |
| 234 | + <span class="k">struct</span> <span class="n"><a href="iterator_traits.html">iterator_traits</a></span><span class="o"><</span><span class="n"><a href="">common_iterator</a></span><span class="o"><</span><span class="n">I</span><span class="p">,</span> <span class="n">S</span><span class="o">>></span> <span class="p">{</span> |
235 | 235 | <span class="k">using</span> <span class="n">iterator_concept</span> <span class="o">=</span> <span class="cm">/*<i>see below</i>*/</span><span class="p">;</span>
|
236 | 236 | <span class="k">using</span> <span class="n">iterator_category</span> <span class="o">=</span> <span class="cm">/*<i>see below</i>*/</span><span class="p">;</span> <span class="c1">// 定義されない場合がある</span>
|
237 | 237 | <span class="k">using</span> <span class="n">value_type</span> <span class="o">=</span> <span class="n"><a href="iter_value_t.html">iter_value_t</a></span><span class="o"><</span><span class="n">I</span><span class="o">></span><span class="p">;</span>
|
@@ -384,7 +384,7 @@ <h2>例</h2>
|
384 | 384 | <span class="c1">// 範囲seqはイテレータ型と番兵型が異なっているためそのままだとエラー</span>
|
385 | 385 | <span class="c1">//iter_output(std::<a href="../ranges/begin.html">ranges::begin</a>(seq), std::<a href="../ranges/end.html">ranges::end</a>(seq));</span>
|
386 | 386 |
|
387 |
| - <span class="c1">// common_iteratorを通すことでイテレータ型と番兵型を合わせる</span> |
| 387 | + <span class="c1">// <a href="">common_iterator</a>を通すことでイテレータ型と番兵型を合わせる</span> |
388 | 388 | <span class="k">using</span> <span class="n">CI</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">std::common_iterator</span></span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">ranges</span><span class="o">::</span><span class="n"><a href="../ranges/iterator_t.html">iterator_t</a></span><span class="o"><</span><span class="k">decltype</span><span class="p">(</span><span class="n">seq</span><span class="p">)</span><span class="o">></span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">ranges</span><span class="o">::</span><span class="n"><a href="../ranges/sentinel_t.html">sentinel_t</a></span><span class="o"><</span><span class="k">decltype</span><span class="p">(</span><span class="n">seq</span><span class="p">)</span><span class="o">>></span><span class="p">;</span>
|
389 | 389 |
|
390 | 390 | <span class="k">auto</span> <span class="n">it</span> <span class="o">=</span> <span class="n">CI</span><span class="p">{</span><span class="n">std</span><span class="o">::</span><span class="n"><a href="../ranges/begin.html">ranges::begin</a></span><span class="p">(</span><span class="n">seq</span><span class="p">)};</span>
|
|
0 commit comments