200200
201201 < p class ="text-right "> < small >
202202 最終更新日時(UTC):
203- < span itemprop ="datePublished " content ="2025-09-29T09:17:29 ">
204- 2025年09月29日 09時17分29秒
203+ < span itemprop ="datePublished " content ="2025-10-11T14:55:28 ">
204+ 2025年10月11日 14時55分28秒
205205 </ span >
206206 < br />
207207 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
208- < span itemprop ="name "> Raclamusi </ span >
208+ < span itemprop ="name "> yoh </ span >
209209 </ span >
210210 が更新
211211 </ small > </ p >
234234< h2 > 概要</ h2 >
235235< p > < code > spawn</ code > は、入力< a href ="sender.html "> Sender</ a > に対して< a href ="scope_token.html "> 非同期トークンスコープ</ a > への関連付けを試み、成功時に入力Senderを早期開始(eagerly start)させるSenderコンシューマである。</ p >
236236< h2 > 効果</ h2 >
237- < p > 説明用の式< code > sndr</ code > , < code > token</ code > , < code > env</ code > に対して、下記の通り定義する 。</ p >
237+ < p > 説明用の式< code > sndr</ code > , < code > token</ code > , < code > env</ code > を下記の通り定義する 。</ p >
238238< ul >
239239< li > < code > Sndr</ code > 型を< code > decltype((sndr))</ code > 、</ li >
240240< li > < code > Token</ code > 型を< code > < a href ="../../type_traits/remove_cvref.html "> remove_cvref_t</ a > <decltype((token))></ code > 、</ li >
@@ -249,19 +249,19 @@ <h2>効果</h2>
249249</ ul >
250250< p > 呼び出し式< code > spawn(sndr, token, env)</ code > は< code > void</ code > 型であり、次の効果をもつ。</ p >
251251< ul >
252- < li > < code > alloc</ code > を用いてメモリ確保し、< code > alloc</ code > , < code > < a href ="write_env.html "> write_env</ a > (token.wrap(sndr), senv)</ code > , < code > token</ code > から特殊化された< code > spawn-state</ code > 型のオブジェクト< code > o</ code > を構築し、< code > o.run()</ code > を呼び出す。何らかのオブジェクト構築 ・破棄時に< a class ="cpprefjp-defined-word " data-desc ="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態 "> 例外</ a > 送出されたときは、確保されたメモリが解放される。</ li >
252+ < li > < code > alloc</ code > を用いてメモリ確保し、< code > alloc</ code > , < code > < a href ="write_env.html "> write_env</ a > (token.wrap(sndr), senv)</ code > , < code > token</ code > から特殊化された< code > spawn-state</ code > 型のオブジェクト< code > o</ code > を構築し、< code > o.run()</ code > を呼び出す。いずれかのオブジェクト構築 ・破棄時に< a class ="cpprefjp-defined-word " data-desc ="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態 "> 例外</ a > 送出されたときは、確保されたメモリが解放される。</ li >
253253</ ul >
254- < p > 式 < code > spawn(sndr, token)</ code > は、式< code > spawn(sndr, token, < a href ="env.html "> execution::env<></ a > ())</ code > と等価である。</ p >
254+ < p > 呼び出し式 < code > spawn(sndr, token)</ code > は、式< code > spawn(sndr, token, < a href ="env.html "> execution::env<></ a > ())</ code > と等価である。</ p >
255255< h2 > 説明専用エンティティ</ h2 >
256- < p > 説明専用のクラス < code > spawn-state-base</ code > を下記の通り定義する。 </ p >
256+ < h3 > クラス < code > spawn-state-base</ code > </ h3 >
257257< p > < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="k "> namespace</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> execution</ span > < span class ="p "> {</ span >
258258 < span class ="k "> struct</ span > < span class ="n "> spawn</ span > < span class ="o "> -</ span > < span class ="n "> state</ span > < span class ="o "> -</ span > < span class ="n "> base</ span > < span class ="p "> {</ span > < span class ="c1 "> // exposition only</ span >
259259 < span class ="k "> virtual</ span > < span class ="kt "> void</ span > < span class ="n "> complete</ span > < span class ="p "> ()</ span > < span class ="k "> noexcept</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ;</ span > < span class ="c1 "> // exposition only</ span >
260260 < span class ="p "> };</ span >
261261< span class ="p "> }</ span >
262262</ code > </ pre > </ div >
263263</ p >
264- < p > 説明専用のクラス < code > spawn-receiver</ code > を下記の通り定義する。 </ p >
264+ < h3 > クラス < code > spawn-receiver</ code > </ h3 >
265265< p > < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="k "> namespace</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> execution</ span > < span class ="p "> {</ span >
266266 < span class ="k "> struct</ span > < span class ="n "> spawn</ span > < span class ="o "> -</ span > < span class ="n "> receiver</ span > < span class ="p "> {</ span > < span class ="c1 "> // exposition only</ span >
267267 < span class ="k "> using</ span > < span class ="n "> receiver_concept</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="receiver.html "> receiver_t</ a > </ span > < span class ="p "> ;</ span >
@@ -273,7 +273,7 @@ <h2>説明専用エンティティ</h2>
273273< span class ="p "> }</ span >
274274</ code > </ pre > </ div >
275275</ p >
276- < p > 説明専用のクラステンプレート < code > spawn-state</ code > を下記の通り定義する。 </ p >
276+ < h3 > クラステンプレート < code > spawn-state</ code > </ h3 >
277277< p > < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="k "> namespace</ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> execution</ span > < span class ="p "> {</ span >
278278 < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> Alloc</ span > < span class ="p "> ,</ span > < span class ="n "> < a href ="scope_token.html "> scope_token</ a > </ span > < span class ="n "> Token</ span > < span class ="p "> ,</ span > < span class ="n "> < a href ="sender.html "> sender</ a > </ span > < span class ="n "> Sender</ span > < span class ="o "> ></ span >
279279 < span class ="k "> struct</ span > < span class ="n "> spawn</ span > < span class ="o "> -</ span > < span class ="nl "> state</ span > < span class ="p "> :</ span > < span class ="n "> < i > spawn-state-base</ i > </ span > < span class ="p "> {</ span > < span class ="c1 "> // exposition only</ span >
@@ -395,7 +395,7 @@ <h3>処理系</h3>
395395< h2 > 関連項目</ h2 >
396396< ul >
397397< li > < code > < a href ="scope_token.html "> execution::scope_token</ a > </ code > </ li >
398- < li > < code > < span href ="https://cpprefjp.github.io/reference/execution/execution/ spawn_future.md.nolink "> execution::spawn_future</ span > </ code > </ li >
398+ < li > < code > < a href ="spawn_future.html "> execution::spawn_future</ a > </ code > </ li >
399399</ ul >
400400< h2 > 参照</ h2 >
401401< ul >
0 commit comments