@@ -194,7 +194,7 @@ final-suspend :
194194
195195Promise型のスコープにおいて、非修飾な` return_void ` および` return_value ` の探索が行われる。両方が見つかった場合、プログラムは不適格となる。
196196
197- コルーチン呼び出しのglvalue結果またはprvalue結果オブジェクトを初期化するために、式 _ promise_ ` .get_return_object() ` が使われる。
197+ コルーチン呼び出しのglvalue結果またはprvalue結果オブジェクトを初期化するために、式 < code > _ promise_ </ code > ` .get_return_object() ` が使われる。
198198` get_return_object ` 呼び出しは高々1回であり、` initial_suspend ` 呼び出しよりも前に順序付けられる。
199199
200200中断状態にあるコルーチンは、そのコルーチンを指すコルーチンハンドルの再開メンバ関数呼び出しによって、継続実行を再開できる。
@@ -280,9 +280,9 @@ int main() {
280280パラメータのコピーの生存期間は、パラメータPromiseオブジェクトの終了直後で終了する。
281281(コルーチンが参照渡しのパラメータを持つ場合、そのパラメータにより参照されるエンティティ生存期間終了後のコルーチン再開は未定義動作を引き起こしやすい。)
282282
283- 式 _promise_`.unhandled_exception()`の評価が例外で終了した場合、コルーチンは最終サスペンドポイントで中断したとみなされる。
283+ 式 <code> _promise_</code> `.unhandled_exception()`の評価が例外で終了した場合、コルーチンは最終サスペンドポイントで中断したとみなされる。
284284
285- 式 `co_await ` _promise_`.final_suspend()` は例外送出してはならない。
285+ 式 `co_await` <code> _promise_</code> `.final_suspend()` は例外送出してはならない。
286286
287287### Await式
288288`co_await`式は、そのオペランド式で表される計算の完了を待機しているあいだ、コルーチン評価をサスペンド(中断)するために用いる。
@@ -303,17 +303,17 @@ Await式の評価では、次のような補助的な型、式、オブジェク
303303- _ p_ を同Await式を含むコルーチンのPromiseオブジェクトの左辺値名とし、` P ` を同オブジェクトの型とする。
304304- _ a_ (Awaitable) を下記のように定義する:
305305 - Await式がYield式または初期サスペンドポイントまたは最終サスペンドポイントにより暗黙に生成された場合、_ a_ をその _ cast-expression_ とする。
306- - ` P ` のスコープで非修飾な` await_transform ` の探索により一つ以上の名前がみつかった場合は、 _ a_ を _ p_ ` .await_transform( ` _ cast-expression_ ` ) ` とする。
306+ - ` P ` のスコープで非修飾な` await_transform ` の探索により一つ以上の名前がみつかった場合は、 _ a_ を < code > _ p_ </ code > ` .await_transform( ` < code > _ cast-expression_ </ code > ` ) ` とする。
307307 - それ以外では _ a_ を _ cast-expression_ とする。
308308- _ o_ (Awaiter) を下記のように定義する。_ o_ がprvalueの場合は[ Temporary materialization conversion] ( https://cpprefjp.github.io/lang/cpp17/guaranteed_copy_elision.html ) が行われる:
309309 - 実引数 _ a_ に対して適用可能な` operator co_await ` 関数を列挙し、_ o_ をオーバーロード解決により選択された関数呼び出しとする。
310310 - 適合する関数が見つからない場合、_ o_ を _ a_ とする。
311311 - オーバーロード解決が曖昧な場合、プログラムは不適格となる。
312312- _ e_ を、_ o_ の評価結果を参照する左辺値とする。
313313- _ h_ を、同Await式を含むコルーチンを参照する[ ` std::coroutine_handle<P> ` ] ( /reference/coroutine/coroutine_handle.md ) 型のオブジェクトとする。
314- - _ await-ready_ を、` bool ` に変換されうる式 _ e_ ` .await_ready() ` とする。
315- - _ await-suspend_ を、式 _ e_ ` .await_suspend( ` _ h_ ` ) ` とする。この式(の結果)は` void ` であるか、` bool ` または任意の型` Z ` に対する[ ` std::coroutine_handle<Z> ` ] ( /reference/coroutine/coroutine_handle.md ) 型のprvalueであるべき。
316- - _ await-resume_ を、式 _ e_ ` .await_resume() ` とする。
314+ - _ await-ready_ を、` bool ` に変換されうる式 < code > _ e_ </ code > ` .await_ready() ` とする。
315+ - _ await-suspend_ を、式 < code > _ e_ </ code > ` .await_suspend( ` < code > _ h_ </ code > ` ) ` とする。この式(の結果)は` void ` であるか、` bool ` または任意の型` Z ` に対する[ ` std::coroutine_handle<Z> ` ] ( /reference/coroutine/coroutine_handle.md ) 型のprvalueであるべき。
316+ - _ await-resume_ を、式 < code > _ e_ </ code > ` .await_resume() ` とする。
317317
318318Await式は式 _ await-resume_ と同じ型、同じ値カテゴリを持つ。
319319
@@ -377,7 +377,7 @@ co_yield braced-init-list
377377* braced-init-list[ italic]
378378
379379Yield式は関数の中断コンテキストにのみ出現してよい。
380- _ e_ をYield式のオペランド、_ p_ を同式を含むコルーチンのPromiseオブジェクトのlvalue名としたとき、Yield式は式` co_await ` _ p_ ` .yield_value( ` _ e_ ` ) ` と等価である。
380+ _ e_ をYield式のオペランド、_ p_ を同式を含むコルーチンのPromiseオブジェクトのlvalue名としたとき、Yield式は式` co_await ` < code > _ p_ </ code > ` .yield_value( ` < code > _ e_ </ code > ` ) ` と等価である。
381381
382382``` cpp
383383template <typename T>
@@ -441,10 +441,10 @@ _p_ をコルーチンPromiseオブジェクトのlvalue名とすると、`co_re
441441
442442ここで _final-suspend_ はコルーチン動作説明用の最終サスペンドポイントラベル名であり、_S_ は次の通り定義される:
443443
444- - オペランドが _braced-init-list_ または非`void`型の式の場合、_S_ を _p_`.return_value(` _expr-or-braced-init-list_ `)`とする。式 _S_ は `void`型のprvalueであるべき。
445- - そうでなければ、_S_ を複合文 `{` _expression_ _opt_ `;` _p_`.return_void(); }`とする。式 _p_`.return_void()`は`void`型のprvalueであるべき。
444+ - オペランドが _braced-init-list_ または非`void`型の式の場合、_S_ を <code> _p_</code> `.return_value(` <code> _expr-or-braced-init-list_</code> `)`とする。式 _S_ は `void`型のprvalueであるべき。
445+ - そうでなければ、_S_ を複合文 `{` <code>_expression<sub>opt</sub>_</code> `;` <code> _p_</code> `.return_void(); }`とする。式 <code> _p_</code> `.return_void()`は`void`型のprvalueであるべき。
446446
447- _p_`.return_void()`が有効な式のとき、コルーチン本体の終端到達はオペランド無し`co_return`と等価である。
447+ <code> _p_</code> `.return_void()`が有効な式のとき、コルーチン本体の終端到達はオペランド無し`co_return`と等価である。
448448そうでなければ、コルーチン本体の終端到達は未定義の動作を引き起こす。
449449
450450
0 commit comments