|
188 | 188 |
|
189 | 189 | <p class="text-right"><small>
|
190 | 190 | 最終更新日時(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秒 |
193 | 193 | </span>
|
194 | 194 | <br/>
|
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
@@ -220,20 +220,21 @@ <h1 itemprop="name"><span class="token">条件式での構造化束縛の使用
|
220 | 220 | <h2>概要</h2>
|
221 | 221 | <p>C++26では、<code>if</code>文、<code>while</code>文、<code>for</code>文、<code>switch</code>文の条件式において構造化束縛を使用できるようになる。</p>
|
222 | 222 | <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> |
228 | 228 |
|
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> |
237 | 238 | <p>なお、条件分岐文での初期化式と、全体を<code>bool</code>変換する条件式は別で指定できる。</p>
|
238 | 239 | <p><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../reference/print.html"><print></a></span><span class="cp"></span>
|
239 | 240 | <span class="cp">#include</span> <span class="cpf"><a href="../../reference/charconv.html"><charconv></a></span><span class="cp"></span>
|
|
0 commit comments