Skip to content

Commit dfa7482

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent df18419 commit dfa7482

File tree

3 files changed

+46
-534
lines changed

3 files changed

+46
-534
lines changed

lang/cpp26/structured_binding_declaration_as_a_condition.html

Lines changed: 16 additions & 15 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-09-12T04:14:47">
192-
2024年09月12日 04時14分47秒
191+
<span itemprop="datePublished" content="2024-09-12T04:50:49">
192+
2024年09月12日 04時50分49秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -220,20 +220,21 @@ <h1 itemprop="name"><span class="token">条件式での構造化束縛の使用
220220
<h2>概要</h2>
221221
<p>C++26では、<code>if</code>文、<code>while</code>文、<code>for</code>文、<code>switch</code>文の条件式において構造化束縛を使用できるようになる。</p>
222222
<p>C++23までは、条件分岐文の初期化式で構造化束縛は使用できたが、その場合に条件式を別途指定する必要があった。C++26では構造化束縛した全体が<code>bool</code>型に変換可能であれば、条件式として構造化束縛を使用できるようになった。</p>
223-
<p><pre><code>// C++23
224-
if (auto [to, ec] = <a href="../../reference/charconv/to_chars.html">std::to_chars</a>(p, last, 42); ec == <a href="../../reference/system_error/errc.html">std::errc</a>{}) {
225-
auto s = <a href="../../reference/string/basic_string.html">std::string</a>(p, to);
226-
227-
}
223+
<p><div class="codehilite"><pre><span></span><code><span class="c1">// C++23</span>
224+
<span class="k">if</span> <span class="p">(</span><span class="k">auto</span> <span class="p">[</span><span class="n">to</span><span class="p">,</span> <span class="n">ec</span><span class="p">]</span> <span class="o">=</span> <span class="n"><a href="../../reference/charconv/to_chars.html">std::to_chars</a></span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">last</span><span class="p">,</span> <span class="mi">42</span><span class="p">);</span> <span class="n">ec</span> <span class="o">==</span> <span class="n"><a href="../../reference/system_error/errc.html">std::errc</a></span><span class="p">{})</span> <span class="p">{</span>
225+
<span class="k">auto</span> <span class="n">s</span> <span class="o">=</span> <span class="n"><a href="../../reference/string/basic_string.html">std::string</a></span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">to</span><span class="p">);</span>
226+
<span class="err"></span>
227+
<span class="p">}</span>
228228

229-
// C++26
230-
// <a href="../../reference/charconv/to_chars.html">std::to_chars</a>の戻り値型である<a href="../../reference/charconv/to_chars_result.html">std::to_chars_result</a>は、
231-
// boolへの変換演算子をもつ
232-
if (auto [to, ec] = <a href="../../reference/charconv/to_chars.html">std::to_chars</a>(p, last, 42)) {
233-
auto s = <a href="../../reference/string/basic_string.html">std::string</a>(p, to);
234-
235-
}
236-
</code></pre></p>
229+
<span class="c1">// C++26</span>
230+
<span class="c1">// <a href="../../reference/charconv/to_chars.html">std::to_chars</a>の戻り値型である<a href="../../reference/charconv/to_chars_result.html">std::to_chars_result</a>は、</span>
231+
<span class="c1">// boolへの変換演算子をもつ</span>
232+
<span class="k">if</span> <span class="p">(</span><span class="k">auto</span> <span class="p">[</span><span class="n">to</span><span class="p">,</span> <span class="n">ec</span><span class="p">]</span> <span class="o">=</span> <span class="n"><a href="../../reference/charconv/to_chars.html">std::to_chars</a></span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">last</span><span class="p">,</span> <span class="mi">42</span><span class="p">))</span> <span class="p">{</span>
233+
<span class="k">auto</span> <span class="n">s</span> <span class="o">=</span> <span class="n"><a href="../../reference/string/basic_string.html">std::string</a></span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">to</span><span class="p">);</span>
234+
<span class="err"></span>
235+
<span class="p">}</span>
236+
</code></pre></div>
237+
</p>
237238
<p>なお、条件分岐文での初期化式と、全体を<code>bool</code>変換する条件式は別で指定できる。</p>
238239
<p><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../reference/print.html">&lt;print&gt;</a></span><span class="cp"></span>
239240
<span class="cp">#include</span> <span class="cpf"><a href="../../reference/charconv.html">&lt;charconv&gt;</a></span><span class="cp"></span>

0 commit comments

Comments
 (0)