Skip to content

Commit 22302eb

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 9c9710e commit 22302eb

4 files changed

Lines changed: 106 additions & 48 deletions

File tree

reference/chrono/make24.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ <h2>例</h2>
263263
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">false</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">0h</a></span><span class="p">);</span>
264264

265265
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">);</span>
266-
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mf">1l</span><span class="n">zTQueWWnMMHledjpYwzGhdZUlYsEKjN</span><span class="p">);</span>
266+
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">);</span>
267267
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">15h</a></span><span class="p">);</span>
268268
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">11h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">23h</a></span><span class="p">);</span>
269269
<span class="p">}</span>

reference/generator/generator/promise_type/yield_value.html

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,12 @@
213213
<p class="text-right"><small>
214214
最終更新日時:
215215
<time itemprop="datePublished" class="js-local-time"
216-
datetime="2026-08-17T16:13:20+09:00">
217-
2026年08月17日 16時13分20秒 (JST)
216+
datetime="2026-08-17T21:49:31+09:00">
217+
2026年08月17日 21時49分31秒 (JST)
218218
</time>
219219
<br/>
220220
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
221-
<span itemprop="name">Akira Takahashi</span>
221+
<span itemprop="name">yoh</span>
222222
</span>
223223
が更新
224224
</small></p>
@@ -271,9 +271,13 @@
271271
<span class="w"> </span><span class="k">requires</span><span class="w"> </span><span class="n"><a href="../../../concepts/same_as.html">same_as</a></span><span class="o">&lt;</span><span class="k">typename</span><span class="w"> </span><span class="nc"><a href="../../generator.html">generator</a></span><span class="o">&lt;</span><span class="n">T2</span><span class="p">,</span><span class="w"> </span><span class="n">V2</span><span class="p">,</span><span class="w"> </span><span class="n">Alloc2</span><span class="o">&gt;::</span><span class="n"><a href="../../generator.html">yielded</a></span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../generator.html">yielded</a></span><span class="o">&gt;</span>
272272
<span class="k">auto</span><span class="w"> </span><span class="n">yield_value</span><span class="p">(</span><span class="n"><a href="../../../ranges/elements_of.html">ranges::elements_of</a></span><span class="o">&lt;</span><span class="n"><a href="../../generator.html">generator</a></span><span class="o">&lt;</span><span class="n">T2</span><span class="p">,</span><span class="w"> </span><span class="n">V2</span><span class="p">,</span><span class="w"> </span><span class="n">Alloc2</span><span class="o">&gt;&amp;&amp;</span><span class="p">,</span><span class="w"> </span><span class="n">Unused</span><span class="o">&gt;</span><span class="w"> </span><span class="n">g</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// (3)</span>
273273

274+
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span><span class="w"> </span><span class="nc">T2</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">V2</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Alloc2</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Unused</span><span class="o">&gt;</span>
275+
<span class="w"> </span><span class="k">requires</span><span class="w"> </span><span class="n"><a href="../../../concepts/same_as.html">same_as</a></span><span class="o">&lt;</span><span class="k">typename</span><span class="w"> </span><span class="nc"><a href="../../generator.html">generator</a></span><span class="o">&lt;</span><span class="n">T2</span><span class="p">,</span><span class="w"> </span><span class="n">V2</span><span class="p">,</span><span class="w"> </span><span class="n">Alloc2</span><span class="o">&gt;::</span><span class="n"><a href="../../generator.html">yielded</a></span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../generator.html">yielded</a></span><span class="o">&gt;</span>
276+
<span class="k">auto</span><span class="w"> </span><span class="n">yield_value</span><span class="p">(</span><span class="n"><a href="../../../ranges/elements_of.html">ranges::elements_of</a></span><span class="o">&lt;</span><span class="n"><a href="../../generator.html">generator</a></span><span class="o">&lt;</span><span class="n">T2</span><span class="p">,</span><span class="w"> </span><span class="n">V2</span><span class="p">,</span><span class="w"> </span><span class="n">Alloc2</span><span class="o">&gt;&amp;</span><span class="p">,</span><span class="w"> </span><span class="n">Unused</span><span class="o">&gt;</span><span class="w"> </span><span class="n">g</span><span class="p">)</span><span class="w"> </span><span class="k">noexcept</span><span class="p">;</span><span class="w"> </span><span class="c1">// (4)</span>
277+
274278
<span class="k">template</span><span class="o">&lt;</span><span class="n"><a href="../../../ranges/input_range.html">ranges::input_range</a></span><span class="w"> </span><span class="n">Rng</span><span class="p">,</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Alloc</span><span class="o">&gt;</span>
275279
<span class="w"> </span><span class="k">requires</span><span class="w"> </span><span class="n"><a href="../../../concepts/convertible_to.html">convertible_to</a></span><span class="o">&lt;</span><span class="n"><a href="../../../ranges/range_reference_t.html">ranges::range_reference_t</a></span><span class="o">&lt;</span><span class="n">Rng</span><span class="o">&gt;</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../generator.html">yielded</a></span><span class="o">&gt;</span>
276-
<span class="k">auto</span><span class="w"> </span><span class="n">yield_value</span><span class="p">(</span><span class="n"><a href="../../../ranges/elements_of.html">ranges::elements_of</a></span><span class="o">&lt;</span><span class="n">Rng</span><span class="p">,</span><span class="w"> </span><span class="n">Alloc</span><span class="o">&gt;</span><span class="w"> </span><span class="n">r</span><span class="p">);</span><span class="w"> </span><span class="c1">// (4)</span>
280+
<span class="k">auto</span><span class="w"> </span><span class="n">yield_value</span><span class="p">(</span><span class="n"><a href="../../../ranges/elements_of.html">ranges::elements_of</a></span><span class="o">&lt;</span><span class="n">Rng</span><span class="p">,</span><span class="w"> </span><span class="n">Alloc</span><span class="o">&gt;</span><span class="w"> </span><span class="n">r</span><span class="p">);</span><span class="w"> </span><span class="c1">// (5)</span>
277281
</code></pre></div>
278282
</p>
279283
<h2>概要</h2>
@@ -282,14 +286,15 @@ <h2>概要</h2>
282286
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Preconditions。関数呼び出し時に満たされていると関数が想定する条件。満たさなければ未定義の動作。契約属性の`[[expects]]`に相当">事前条件</a></h2>
283287
<ul>
284288
<li>(2) : Promiseオブジェクトが<code>*this</code>となる<a href="../../../coroutine/coroutine_handle.html">コルーチンへのハンドル</a>が、ある<a href="../../generator.html"><code>generator</code>オブジェクト</a><code>x</code>のアクティブスタック<code>x.active_</code>のトップにあること。</li>
285-
<li>(3) : Promiseオブジェクトが<code>*this</code>となる<a href="../../../coroutine/coroutine_handle.html">コルーチンへのハンドル</a>が、ある<a href="../../generator.html"><code>generator</code>オブジェクト</a><code>x</code>のアクティブスタック<code>x.active_</code>のトップにあること。ジェネレータ<code>g.range</code>に対応するコルーチンが、<a href="initial_suspend.html">初期サスペンドポイント</a>にて中断されていること。</li>
289+
<li>(3), (4) : Promiseオブジェクトが<code>*this</code>となる<a href="../../../coroutine/coroutine_handle.html">コルーチンへのハンドル</a>が、ある<a href="../../generator.html"><code>generator</code>オブジェクト</a><code>x</code>のアクティブスタック<code>x.active_</code>のトップにあること。ジェネレータ<code>g.range</code>に対応するコルーチンが、<a href="initial_suspend.html">初期サスペンドポイント</a>にて中断されていること。</li>
290+
<li>(5) : Promiseオブジェクトが<code>*this</code>となる<a href="../../../coroutine/coroutine_handle.html">コルーチンへのハンドル</a>が、ある<a href="../../generator.html"><code>generator</code>オブジェクト</a><code>x</code>のアクティブスタック<code>x.active_</code>のトップにあること。ジェネレータ<code>g.range</code>に対応するコルーチンが、<a href="initial_suspend.html">初期サスペンドポイント</a>にて中断されていること。</li>
286291
</ul>
287292
<h2>効果</h2>
288293
<p>(1) : 以下と等価</p>
289294
<p><div class="codehilite"><pre><span></span><code><span class="n"><a href="../promise_type.html">value_</a></span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n"><a href="../../../memory/addressof.html">addressof</a></span><span class="p">(</span><span class="n">val</span><span class="p">)</span>
290295
</code></pre></div>
291296
</p>
292-
<p>(4) : 以下と等価</p>
297+
<p>(5) : 以下と等価</p>
293298
<p><div class="codehilite"><pre><span></span><code><span class="k">auto</span><span class="w"> </span><span class="n">nested</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[](</span><span class="n"><a href="../../../memory/allocator_arg_t.html">allocator_arg_t</a></span><span class="p">,</span><span class="w"> </span><span class="n">Alloc</span><span class="p">,</span><span class="w"> </span><span class="n"><a href="../../../ranges/iterator_t.html">ranges::iterator_t</a></span><span class="o">&lt;</span><span class="n">Rng</span><span class="o">&gt;</span><span class="w"> </span><span class="n">i</span><span class="p">,</span>
294299
<span class="w"> </span><span class="n"><a href="../../../ranges/sentinel_t.html">ranges::sentinel_t</a></span><span class="o">&lt;</span><span class="n">Rng</span><span class="o">&gt;</span><span class="w"> </span><span class="n">s</span><span class="p">)</span>
295300
<span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="n"><a href="../../generator.html">generator</a></span><span class="o">&lt;</span><span class="n"><a href="../../generator.html">yielded</a></span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="p">,</span><span class="w"> </span><span class="n">Alloc</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span>
@@ -309,7 +314,7 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価
309314
<li><a href="../promise_type.html">説明専用メンバ<code>value_</code></a>が保持オブジェクトを指してコルーチンを中断(suspend)するメンバ関数を持つ。</li>
310315
</ul>
311316
</li>
312-
<li>(3) : 以下の動作をする<a class="cpprefjp-defined-word" data-desc="未規定の動作。事前の断りなく処理系によって異なる動作をする" href="../../../../implementation-compliance.html#dfn-unspecified-behavior">未規定</a>の型の<a href="../../../../lang/cpp20/coroutines.html">Awaitableオブジェクト</a><ul>
317+
<li>(3), (4) : 以下の動作をする<a class="cpprefjp-defined-word" data-desc="未規定の動作。事前の断りなく処理系によって異なる動作をする" href="../../../../implementation-compliance.html#dfn-unspecified-behavior">未規定</a>の型の<a href="../../../../lang/cpp20/coroutines.html">Awaitableオブジェクト</a><ul>
313318
<li>Range<code><a href="../../../ranges/elements_of.html">g.range</a></code>の所有権を受け取る。</li>
314319
<li>メンバ関数<code>await_ready</code> : <code>false</code>を返す。</li>
315320
<li>メンバ関数<code>await_suspend</code> : <code>x</code>のアクティブスタック<code>*x.active_</code><code>g.range.<a href="../../../coroutine/coroutine_handle.html">coroutine_</a></code>をpushしてから<code>g.range.coroutine_</code><a href="../../../coroutine/coroutine_handle/resume.html">再開(resume)</a>する。</li>
@@ -321,6 +326,7 @@ <h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに
321326
<ul>
322327
<li>(1), (3), (4) : 投げない。</li>
323328
<li>(2) : 格納されるオブジェクトの初期化によって送出された<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a></li>
329+
<li>(5) : 効果の中で送出された<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a></li>
324330
</ul>
325331
<h2>備考</h2>
326332
<p>ジェネレータコルーチンの<code>co_yield</code>式は<code>void</code>型となる。</p>
@@ -343,15 +349,15 @@ <h2>関連項目</h2>
343349
<h2>参照</h2>
344350
<ul>
345351
<li><a href="https://cplusplus.github.io/LWG/issue3894" target="_blank">LWG Issue 3894. <code>generator::promise_type::yield_value(ranges::elements_of&lt;Rng, Alloc&gt;)</code> should not be <code>noexcept</code></a><ul>
346-
<li>C++26で、(4)から<code>noexcept</code>が削除された(効果内で<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>を送出しうる<code>generator</code>の構築を行うため)</li>
352+
<li>C++26で、(5)から<code>noexcept</code>が削除された(効果内で<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>を送出しうる<code>generator</code>の構築を行うため)</li>
347353
</ul>
348354
</li>
349-
<li><a href="https://cplusplus.github.io/LWG/issue3899" target="_blank">LWG Issue 3899. co_yielding elements of an lvalue generator is unnecessarily inefficient</a><ul>
350-
<li>C++26で、(4)の効果で用いるネストした<code>generator</code>の型を<code>generator&lt;yielded, void, Alloc&gt;</code>に変更し、左辺値<code>generator</code>の要素をco_yieldする際の非効率を解消した</li>
355+
<li><a href="https://cplusplus.github.io/LWG/issue3899" target="_blank">LWG Issue 3899. <code>co_yield</code>ing elements of an lvalue generator is unnecessarily inefficient</a><ul>
356+
<li>C++26で、左辺値参照をとる<a class="cpprefjp-defined-word" data-desc="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合">オーバーロード</a>(4)を追加し、左辺値<code>generator</code>の要素を<code>co_yield</code>する際の非効率性を解消する</li>
351357
</ul>
352358
</li>
353-
<li><a href="https://cplusplus.github.io/LWG/issue4119" target="_blank">LWG Issue 4119. <code>generator::promise_type::yield_value(ranges::elements_of&lt;R, Alloc&gt;)</code>'s nested generator may be ill-formed</a><ul>
354-
<li>LWG 3899と同じく、ネストした<code>generator</code>の型を<code>generator&lt;yielded, void, Alloc&gt;</code>とすることで、要素型が<code>generator</code>のValue型として<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../../../implementation-compliance.html#dfn-ill-formed">不適格</a>になる問題を回避する</li>
359+
<li><a href="https://cplusplus.github.io/LWG/issue4119" target="_blank">LWG Issue 4119. <code>generator::promise_type::yield_value(ranges::elements_of&lt;R, Alloc&gt;)</code>'s nested <code>generator</code> may be ill-formed</a><ul>
360+
<li>C++26で、ネストした<code>generator</code>の型を<code>generator&lt;yielded, void, Alloc&gt;</code>とすることで、<code>generator</code>のValue型として<a class="cpprefjp-defined-word" data-desc="プログラムが適格でないこと。コンパイルエラーなどになる" href="../../../../implementation-compliance.html#dfn-ill-formed">不適格</a>になる問題を回避する</li>
355361
</ul>
356362
</li>
357363
</ul></div>

0 commit comments

Comments
 (0)