Skip to content

Commit a3285e6

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent bf1d6a6 commit a3285e6

File tree

5 files changed

+235
-117
lines changed

5 files changed

+235
-117
lines changed

lang/cpp26/nice_placeholder_with_no_name.html

Lines changed: 3 additions & 2 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="2024-12-21T01:54:48">
192-
2024年12月21日 01時54分48秒
191+
<span itemprop="datePublished" content="2025-05-15T05:13:05">
192+
2025年05月15日 05時13分05秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -293,6 +293,7 @@ <h2>例</h2>
293293
<h2><a href="#relative-page" id="relative-page">関連項目</a></h2>
294294
<ul>
295295
<li><a href="../cpp17/maybe_unused.html">C++17 <code>[[maybe_unused]]</code>属性</a></li>
296+
<li><code><a href="../../reference/tuple/ignore.html">std::ignore</a></code></li>
296297
</ul>
297298
<h2>参照</h2>
298299
<ul>

reference/tuple/ignore.html

Lines changed: 65 additions & 6 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;tuple&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;variable&#34;], &#34;cpp&#34;: [&#34;cpp11&#34;]}, &#34;sources&#34;: [], &#34;page_id&#34;: [&#34;reference&#34;, &#34;tuple&#34;, &#34;ignore&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;tuple&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;variable&#34;], &#34;cpp&#34;: [&#34;cpp11&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;0d19b14f32f7aa43a1ea53f53e3ef6bab98dcdac&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;tuple&gt;\n#include &lt;string&gt;\n\nstd::tuple&lt;int, char, std::string&gt; f()\n{\n return {1, &#39;a&#39;, \&#34;hello\&#34;};\n}\n\nint main() {\n // char\u8981\u7d20\u306f\u7121\u8996\u3059\u308b\n int a;\n std::string c;\n std::tie(a, std::ignore, c) = f();\n\n std::cout &lt;&lt; a &lt;&lt; std::endl;\n std::cout &lt;&lt; c &lt;&lt; std::endl;\n}\n&#34;}, {&#34;id&#34;: &#34;7b0f93d4a4cded3ce4d081cfc5ca30be5b062d65&#34;, &#34;source&#34;: &#34;#include &lt;iostream&gt;\n#include &lt;tuple&gt;\n#include &lt;string&gt;\n\n[[nodiscard]]\nint print_string(std::string s)\n{\n std::cout &lt;&lt; s &lt;&lt; std::endl;\n return 0;\n}\n\nint main() {\n // \u81ea\u5206\u306e\u7528\u9014\u3067\u306f\u3053\u306e\u95a2\u6570\u306f\u5fc5\u305a\u6210\u529f\u3059\u308b\u305f\u3081\u3001\n // \u623b\u308a\u5024\u3092\u7121\u8996\u3059\u308b\n std::ignore = print_string(\&#34;hello\&#34;);\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;tuple&#34;, &#34;ignore&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2024-06-11T13:45:38">
192-
2024年06月11日 13時45分38秒
191+
<span itemprop="datePublished" content="2025-05-15T05:13:05">
192+
2025年05月15日 05時13分05秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -214,14 +214,67 @@
214214

215215
<div class="identifier-type">variable</div><div class="header">&lt;tuple&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std">std::</span><span class="token">ignore</span><span class="cpp cpp11" title="C++11で追加">(C++11)</span></h1>
216216
<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-
<span class="k">const</span> <span class="n"><i>unspecified</i></span> <span class="n">ignore</span><span class="p">;</span> <span class="c1">// C++11</span>
218-
<span class="kr">inline</span> <span class="k">constexpr</span> <span class="n"><i>unspecified</i></span> <span class="n">ignore</span><span class="p">;</span> <span class="c1">// C++17</span>
217+
<span class="k">struct</span> <span class="n">ignore</span><span class="o">-</span><span class="n">type</span> <span class="p">{</span> <span class="c1">// 説明用の定義 (C++26)</span>
218+
<span class="k">constexpr</span> <span class="k">const</span> <span class="n">ignore</span><span class="o">-</span><span class="n">type</span><span class="o">&amp;</span>
219+
<span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="k">const</span> <span class="k">auto</span> <span class="o">&amp;</span><span class="p">)</span> <span class="k">const</span> <span class="k">noexcept</span>
220+
<span class="p">{</span> <span class="k">return</span> <span class="o">*</span><span class="k">this</span><span class="p">;</span> <span class="p">}</span>
221+
<span class="p">};</span>
222+
223+
<span class="k">const</span> <span class="n"><i>unspecified</i></span> <span class="n">ignore</span><span class="p">;</span> <span class="c1">// (1) C++11</span>
224+
<span class="kr">inline</span> <span class="k">constexpr</span> <span class="n"><i>unspecified</i></span> <span class="n">ignore</span><span class="p">;</span> <span class="c1">// (1) C++17</span>
225+
<span class="kr">inline</span> <span class="k">constexpr</span> <span class="n">ignore</span><span class="o">-</span><span class="n">type</span> <span class="n">ignore</span><span class="p">;</span> <span class="c1">// (1) C++26</span>
219226
<span class="p">}</span>
220227
</code></pre></div>
221228
</p>
222229
<h2>概要</h2>
223230
<p><code>ignore</code>は、<code><a href="tie.html">tie()</a></code>を使用してタプルから値を抽出する際に、「不要な値」をマーキングするためのプレースホルダーである。</p>
224-
<p>使用例は<code><a href="tie.html">tie()</a></code>を参照。</p>
231+
<p>そのほか、関数の<a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a>を明示的に無視する際にも使用できる。</p>
232+
<p>C++26以降は、<code><a href="../utility.html">&lt;utility&gt;</a></code>をインクルードして使用することもできる。</p>
233+
<h2></h2>
234+
<h3>タプルの要素を取り出す際に一部の要素を無視する</h3>
235+
<p><div class="yata" id="0d19b14f32f7aa43a1ea53f53e3ef6bab98dcdac"><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>
236+
<span class="cp">#include</span> <span class="cpf"><a href="../tuple.html">&lt;tuple&gt;</a></span><span class="cp"></span>
237+
<span class="cp">#include</span> <span class="cpf"><a href="../string.html">&lt;string&gt;</a></span><span class="cp"></span>
238+
239+
<span class="n"><a href="tuple.html">std::tuple</a></span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="kt">char</span><span class="p">,</span> <span class="n"><a href="../string/basic_string.html">std::string</a></span><span class="o">&gt;</span> <span class="n">f</span><span class="p">()</span>
240+
<span class="p">{</span>
241+
<span class="k">return</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="sc">'a'</span><span class="p">,</span> <span class="s">"hello"</span><span class="p">};</span>
242+
<span class="p">}</span>
243+
244+
<span class="kt">int</span> <span class="n">main</span><span class="p">()</span> <span class="p">{</span>
245+
<span class="c1">// char要素は無視する</span>
246+
<span class="kt">int</span> <span class="n">a</span><span class="p">;</span>
247+
<span class="n"><a href="../string/basic_string.html">std::string</a></span> <span class="n">c</span><span class="p">;</span>
248+
<span class="n"><a href="tie.html">std::tie</a></span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n"><span style="color:#ff0000">std::ignore</span></span><span class="p">,</span> <span class="n">c</span><span class="p">)</span> <span class="o">=</span> <span class="n">f</span><span class="p">();</span>
249+
250+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">a</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
251+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">c</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
252+
<span class="p">}</span>
253+
</code></pre></div>
254+
</div></p>
255+
<h4>出力</h4>
256+
<p><pre><code>1
257+
hello
258+
</code></pre></p>
259+
<h3>関数の<a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a>を無視する (C++17)</h3>
260+
<p><div class="yata" id="7b0f93d4a4cded3ce4d081cfc5ca30be5b062d65"><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>
261+
<span class="cp">#include</span> <span class="cpf"><a href="../tuple.html">&lt;tuple&gt;</a></span><span class="cp"></span>
262+
<span class="cp">#include</span> <span class="cpf"><a href="../string.html">&lt;string&gt;</a></span><span class="cp"></span>
263+
264+
<span class="p">[[</span><span class="n">nodiscard</span><span class="p">]]</span>
265+
<span class="kt">int</span> <span class="n">print_string</span><span class="p">(</span><span class="n"><a href="../string/basic_string.html">std::string</a></span> <span class="n">s</span><span class="p">)</span>
266+
<span class="p">{</span>
267+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">s</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
268+
<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
269+
<span class="p">}</span>
270+
271+
<span class="kt">int</span> <span class="n">main</span><span class="p">()</span> <span class="p">{</span>
272+
<span class="c1">// 自分の用途ではこの関数は必ず成功するため、</span>
273+
<span class="c1">// 戻り値を無視する</span>
274+
<span class="n"><span style="color:#ff0000">std::ignore</span></span> <span class="o">=</span> <span class="n">print_string</span><span class="p">(</span><span class="s">"hello"</span><span class="p">);</span>
275+
<span class="p">}</span>
276+
</code></pre></div>
277+
</div></p>
225278
<h2>バージョン</h2>
226279
<h3>言語</h3>
227280
<ul>
@@ -239,6 +292,12 @@ <h2>関連項目</h2>
239292
<li><code><a href="make_tuple.html">std::make_tuple</a></code></li>
240293
<li><code><a href="forward_as_tuple.html">std::forward_as_tuple</a></code></li>
241294
<li><code><a href="tie.html">std::tie</a></code></li>
295+
<li><a href="../../lang/cpp17/nodiscard.html">C++17 <code>[[nodiscard]]</code>属性</a></li>
296+
<li><a href="../../lang/cpp26/nice_placeholder_with_no_name.html">C++26 宣言のみで使用しない変数の名前として<code>_</code>をサポート</a></li>
297+
</ul>
298+
<h2>参照</h2>
299+
<ul>
300+
<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2968r2.html" target="_blank">P2968R2 Make <code>std::ignore</code> a first-class object</a></li>
242301
</ul></div>
243302

244303
</div>

reference/tuple/tie.html

Lines changed: 3 additions & 2 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="2024-06-11T13:45:38">
192-
2024年06月11日 13時45分38秒
191+
<span itemprop="datePublished" content="2025-05-15T05:13:05">
192+
2025年05月15日 05時13分05秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -351,6 +351,7 @@ <h2>関連項目</h2>
351351
<h2>参照</h2>
352352
<ul>
353353
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2301" target="_blank">LWG2301 Why is std::tie not constexpr?</a></li>
354+
<li><a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2968r2.html" target="_blank">P2968R2 Make <code>std::ignore</code> a first-class object</a></li>
354355
</ul></div>
355356

356357
</div>

0 commit comments

Comments
 (0)