Skip to content

Commit 71efc05

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 0ef6ddf commit 71efc05

6 files changed

Lines changed: 261 additions & 62 deletions

File tree

reference/ranges/filter_view/iterator/op_constructor.html

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;ranges&#34;], &#34;namespace&#34;: [&#34;std::ranges&#34;], &#34;class&#34;: [&#34;filter_view::iterator&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;104fc200ed126cb0adb6c5d94757821d8b41a154&#34;, &#34;source&#34;: &#34;#include &lt;ranges&gt;\n#include &lt;vector&gt;\n#include &lt;iostream&gt;\n\nint main() {\n using std::ranges::filter_view;\n using std::ranges::iterator_t;\n\n std::vector&lt;int&gt; vec = {0, 1, 2, 3, 4, 5};\n\n filter_view fv{vec, [](int x){ return x % 2 == 0; }};\n\n iterator_t&lt;decltype(fv)&gt; i(fv, vec.begin());\n\n std::cout &lt;&lt; *i &lt;&lt; &#39;\\n&#39;;\n i++;\n std::cout &lt;&lt; *i &lt;&lt; &#39;\\n&#39;;\n i++;\n std::cout &lt;&lt; *i &lt;&lt; &#39;\\n&#39;;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;ranges&#34;, &#34;filter_view&#34;, &#34;iterator&#34;, &#34;op_constructor&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;ranges&#34;], &#34;namespace&#34;: [&#34;std::ranges&#34;], &#34;class&#34;: [&#34;filter_view::iterator&#34;], &#34;id-type&#34;: [&#34;function&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;78fa235d51ee5fb1d219db6ed23002c1604a2730&#34;, &#34;source&#34;: &#34;#include &lt;ranges&gt;\n#include &lt;vector&gt;\n#include &lt;iostream&gt;\n\nint main() {\n std::vector&lt;int&gt; vec = {0, 1, 2, 3, 4, 5};\n\n std::ranges::filter_view fv{vec, [](int x){ return x % 2 == 0; }};\n\n // begin()\u3092\u7d4c\u7531\u3057\u3066\u30a4\u30c6\u30ec\u30fc\u30bf\u3092\u53d6\u5f97\u3059\u308b\n auto i = fv.begin();\n\n std::cout &lt;&lt; *i &lt;&lt; &#39;\\n&#39;;\n i++;\n std::cout &lt;&lt; *i &lt;&lt; &#39;\\n&#39;;\n i++;\n std::cout &lt;&lt; *i &lt;&lt; &#39;\\n&#39;;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;ranges&#34;, &#34;filter_view&#34;, &#34;iterator&#34;, &#34;op_constructor&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -212,12 +212,12 @@
212212

213213
<p class="text-right"><small>
214214
最終更新日時(UTC):
215-
<span itemprop="datePublished" content="2025-09-24T10:08:35">
216-
2025年09月24日 10時08分35秒
215+
<span itemprop="datePublished" content="2026-05-21T07:00:02">
216+
2026年05月21日 07時00分02秒
217217
</span>
218218
<br/>
219219
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
220-
<span itemprop="name">Raclamusi</span>
220+
<span itemprop="name">Akira Takahashi</span>
221221
</span>
222222
が更新
223223
</small></p>
@@ -237,32 +237,36 @@
237237
<div class="col-sm-12 content-body">
238238

239239
<div class="identifier-type">function</div><div class="header">&lt;ranges&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std::ranges">std::ranges::</span><span class="class" title="class filter_view::iterator">filter_view::iterator::</span><span class="token">コンストラクタ</span><span class="cpp cpp20" title="C++20で追加">(C++20)</span></h1>
240-
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="n">iterator</span><span class="p">()</span><span class="w"> </span><span class="k">requires</span><span class="w"> </span><span class="n"><a href="../../../concepts/default_initializable.html">default_initializable</a></span><span class="o">&lt;</span><span class="n"><a href="../../iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="n">V</span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">default</span><span class="p">;</span><span class="w"> </span><span class="c1">// (1)</span>
240+
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">public</span><span class="o">:</span>
241+
<span class="w"> </span><span class="n">iterator</span><span class="p">()</span><span class="w"> </span><span class="k">requires</span><span class="w"> </span><span class="n"><a href="../../../concepts/default_initializable.html">default_initializable</a></span><span class="o">&lt;</span><span class="n"><a href="../../iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="n">V</span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">default</span><span class="p">;</span><span class="w"> </span><span class="c1">// (1)</span>
241242

242-
<span class="k">constexpr</span><span class="w"> </span><span class="n">iterator</span><span class="p">(</span><span class="n">filter_view</span><span class="o">&amp;</span><span class="w"> </span><span class="n">parent</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="n">V</span><span class="o">&gt;</span><span class="w"> </span><span class="n">current</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2)</span>
243+
<span class="k">private</span><span class="o">:</span>
244+
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="n">iterator</span><span class="p">(</span><span class="n">filter_view</span><span class="o">&amp;</span><span class="w"> </span><span class="n">parent</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="n">V</span><span class="o">&gt;</span><span class="w"> </span><span class="n">current</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) 説明専用</span>
243245
</code></pre></div>
244246
</p>
245247
<h2>概要</h2>
246248
<p><code><a href="../iterator.html">filter_view::iterator</a></code>オブジェクトを構築する。</p>
249+
<ul>
250+
<li>(1) : デフォルトコンストラクタ</li>
251+
<li>(2) : <code>private</code>な説明専用コンストラクタ。<code><a href="../../filter_view.html">filter_view</a></code><code><a href="../begin.html">begin()</a></code>から呼び出される</li>
252+
</ul>
247253
<h2>効果</h2>
248254
<ul>
249255
<li>(1) : <code>current_</code><code>parent_</code><a class="cpprefjp-defined-word" data-desc="デフォルト初期化。`T x;`構文での初期化。トリビアルにデフォルト構築可能な型の場合は初期化されず(オブジェクトのlifetimeは開始される)、そうではないクラス型はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的にデフォルト初期化される">デフォルト構築</a>する</li>
250256
<li>(2) : <code>current_</code><code>std::move(current_)</code>で、<code>parent_</code><code><a href="../../../memory/addressof.html">addressof</a>(parent_)</code>で初期化する</li>
251257
</ul>
252258
<h2></h2>
253-
<p><div class="yata" id="104fc200ed126cb0adb6c5d94757821d8b41a154"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../../ranges.html">&lt;ranges&gt;</a></span>
259+
<p><div class="yata" id="78fa235d51ee5fb1d219db6ed23002c1604a2730"><div class="codehilite"><pre><span></span><code><span class="cp">#include <a href="../../../ranges.html">&lt;ranges&gt;</a></span>
254260
<span class="cp">#include <a href="../../../vector.html">&lt;vector&gt;</a></span>
255261
<span class="cp">#include <a href="../../../iostream.html">&lt;iostream&gt;</a></span>
256262

257263
<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
258-
<span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">ranges</span><span class="o">::</span><span class="n">filter_view</span><span class="p">;</span>
259-
<span class="w"> </span><span class="k">using</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">ranges</span><span class="o">::</span><span class="n"><a href="../../iterator_t.html">iterator_t</a></span><span class="p">;</span>
260-
261264
<span class="w"> </span><span class="n"><a href="../../../vector/vector.html">std::vector</a></span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span><span class="w"> </span><span class="n">vec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">};</span>
262265

263-
<span class="w"> </span><span class="n">filter_view</span><span class="w"> </span><span class="n">fv</span><span class="p">{</span><span class="n">vec</span><span class="p">,</span><span class="w"> </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">return</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">2</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="p">}};</span>
266+
<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">ranges</span><span class="o">::</span><span class="n">filter_view</span><span class="w"> </span><span class="n">fv</span><span class="p">{</span><span class="n">vec</span><span class="p">,</span><span class="w"> </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">return</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">2</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="p">}};</span>
264267

265-
<span class="w"> </span><span class="n"><span style="color:#ff0000">iterator_t&lt;decltype(fv)&gt;</span></span><span class="w"> </span><span class="n">i</span><span class="p">(</span><span class="n">fv</span><span class="p">,</span><span class="w"> </span><span class="n">vec</span><span class="p">.</span><span class="n">begin</span><span class="p">());</span>
268+
<span class="w"> </span><span class="c1">// begin()を経由してイテレータを取得する</span>
269+
<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n"><a href="../begin.html">fv.begin()</a></span><span class="p">;</span>
266270

267271
<span class="w"> </span><span class="n"><a href="../../../iostream/cout.html">std::cout</a></span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="o">*</span><span class="n">i</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">;</span>
268272
<span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span>
@@ -293,6 +297,10 @@ <h2>参照</h2>
293297
<ul>
294298
<li><a href="https://timsong-cpp.github.io/cppwp/n4861/range.filter" target="_blank">N4861 24.7.4 Filter view</a></li>
295299
<li><a href="https://timsong-cpp.github.io/cppwp/n4950/range.filter" target="_blank">N4950 26.7.8 Filter view</a></li>
300+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3059r2.html" target="_blank">P3059R2 Making user-defined constructors of view iterators/sentinels private</a><ul>
301+
<li>C++26で、(2)の<a class="cpprefjp-defined-word" data-desc="プログラム定義。ユーザー(プログラマ)によって定義されること(標準ライブラリで定義されるものを除く)">ユーザー定義</a>コンストラクタを<code>public</code>から<code>private</code>に移動</li>
302+
</ul>
303+
</li>
296304
</ul></div>
297305

298306
</div>

reference/ranges/filter_view/sentinel/op_constructor.html

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,12 @@
212212

213213
<p class="text-right"><small>
214214
最終更新日時(UTC):
215-
<span itemprop="datePublished" content="2024-08-28T20:41:28">
216-
2024年08月28日 20時41分28秒
215+
<span itemprop="datePublished" content="2026-05-21T07:00:02">
216+
2026年05月21日 07時00分02秒
217217
</span>
218218
<br/>
219219
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
220-
<span itemprop="name">Tetsuro Matsumura</span>
220+
<span itemprop="name">Akira Takahashi</span>
221221
</span>
222222
が更新
223223
</small></p>
@@ -237,12 +237,19 @@
237237
<div class="col-sm-12 content-body">
238238

239239
<div class="identifier-type">function</div><div class="header">&lt;ranges&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std::ranges">std::ranges::</span><span class="class" title="class filter_view::sentinel">filter_view::sentinel::</span><span class="token">コンストラクタ</span><span class="cpp cpp20" title="C++20で追加">(C++20)</span></h1>
240-
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="n">sentinel</span><span class="p">()</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">default</span><span class="p">;</span><span class="w"> </span><span class="c1">// (1)</span>
241-
<span class="k">constexpr</span><span class="w"> </span><span class="k">explicit</span><span class="w"> </span><span class="n">sentinel</span><span class="p">(</span><span class="n">filter_view</span><span class="o">&amp;</span><span class="w"> </span><span class="n">parent</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2)</span>
240+
<div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">public</span><span class="o">:</span>
241+
<span class="w"> </span><span class="n">sentinel</span><span class="p">()</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">default</span><span class="p">;</span><span class="w"> </span><span class="c1">// (1)</span>
242+
243+
<span class="k">private</span><span class="o">:</span>
244+
<span class="w"> </span><span class="k">constexpr</span><span class="w"> </span><span class="k">explicit</span><span class="w"> </span><span class="n">sentinel</span><span class="p">(</span><span class="n">filter_view</span><span class="o">&amp;</span><span class="w"> </span><span class="n">parent</span><span class="p">);</span><span class="w"> </span><span class="c1">// (2) 説明専用</span>
242245
</code></pre></div>
243246
</p>
244247
<h2>概要</h2>
245248
<p><code><a href="../sentinel.html">filter_view::sentinel</a></code>オブジェクトを構築する。</p>
249+
<ul>
250+
<li>(1) : デフォルトコンストラクタ</li>
251+
<li>(2) : <code>private</code>な説明専用コンストラクタ。<code><a href="../../filter_view.html">filter_view</a></code><code><a href="../end.html">end()</a></code>から呼び出される</li>
252+
</ul>
246253
<h2>効果</h2>
247254
<ul>
248255
<li>(1) : <code>end_</code><a class="cpprefjp-defined-word" data-desc="デフォルト初期化。`T x;`構文での初期化。トリビアルにデフォルト構築可能な型の場合は初期化されず(オブジェクトのlifetimeは開始される)、そうではないクラス型はデフォルトコンストラクタで初期化する。配列型の場合は各要素が再帰的にデフォルト初期化される">デフォルト構築</a>する</li>
@@ -266,6 +273,10 @@ <h2>参照</h2>
266273
<ul>
267274
<li><a href="https://timsong-cpp.github.io/cppwp/n4861/range.filter" target="_blank">N4861 24.7.4 Filter view</a></li>
268275
<li><a href="https://timsong-cpp.github.io/cppwp/n4950/range.filter" target="_blank">N4950 26.7.8 Filter view</a></li>
276+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3059r2.html" target="_blank">P3059R2 Making user-defined constructors of view iterators/sentinels private</a><ul>
277+
<li>C++26で、(2)の<a class="cpprefjp-defined-word" data-desc="プログラム定義。ユーザー(プログラマ)によって定義されること(標準ライブラリで定義されるものを除く)">ユーザー定義</a>コンストラクタを<code>public</code>から<code>private</code>に移動</li>
278+
</ul>
279+
</li>
269280
</ul></div>
270281

271282
</div>

0 commit comments

Comments
 (0)