class run-loop-sender; // exposition only
概要
run-loop-senderは、get_schedulerメンバ関数が返すrun-loop-scheduler動作仕様の説明で利用される説明専用のクラスである。
クラス仕様
run-loop-sender型はsenderのモデルである。Eを環境型として、completion_signatures_of_t<run-loop-sender, E>は下記の通り。unstoppable_token<stop_token_of_t<E>>がtrueのとき、completion_signatures<set_value_t()>- そうでなければ、
completion_signatures<set_value_t(), set_stopped_t()>
run-loop-senderインスタンスは、関連付けられたrun_loopインスタンスの生存期間(lifetime)終了まで有効。- 説明用の式
sndrの型をrun-loop-sender、CSが上記completion_signaturesの特殊化であるときreceiver-of<decltype((rcvr)), CS>がtrueとなる式rcvrとしたとき、- 式
connect(sndr, rcvr)の型はrun-loop-opstate<decay_t<decltype((rcvr))>>であり、潜在的な例外送出(potentially-throwing)は式(void(sndr), auto(rcvr))に従う。 - 完了タグ
Cをset_value_tまたはset_stopped_tとしたとき、式get_completion_scheduler<C>(get_env(sndr))の型はrun-loop-schedulerとなり、そのインスタンスは同一sndrから取得された場合に等しくなる。- この式の潜在的な例外送出は
sndrに従うと規定されていたが、get_envとget_completion_schedulerはいずれも例外を送出しないことが要求されるため、冗長な規定として削除された、この規定は冗長だった
- この式の潜在的な例外送出は
- 式
バージョン
言語
- C++26
関連項目
参照
- P2300R10
std::execution - P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions
- P3941R4 Scheduler Affinity
- P4159R0 Make
sender_inandreceiver_ofexposition-only - LWG Issue 4471. Remove test for
get_env noexcept-ness frominline_schedulerget_completion_scheduler<C>(get_env(sndr))が潜在的に例外送出するかどうかの規定が削除された。get_envもget_completion_schedulerも例外を送出しないことが要求されており、冗長だったため。規格としてはC++29のワーキングドラフトへ適用されたが、動作は変わらないため、run_loopが追加されたC++26へ遡及して適用される