最終更新日時(UTC):
が更新

履歴 編集

function
<execution>

std::execution::system_context_replaceability::parallel_scheduler_backend::schedule_bulk_unchunked(C++26)

virtual void schedule_bulk_unchunked(size_t n,
                                     bulk_item_receiver_proxy& r,
                                     span<byte> s) noexcept = 0;

概要

parallel_schedulerによるbulk_unchunkedアルゴリズムカスタマイズのバックエンド側を実装する。

事前条件

*this, rが参照するオブジェクト, sが参照するストレージの生存期間終了は、下記いずれか式の評価開始よりも後に発生(happen after)すること。

効果

派生クラスでは、この関数を下記のように実装すべきである。

  • 下記いずれかの式が評価される
  • r.execute(b, e)が呼ばれたとき、bは範囲[0, n)内かつeb + 1に等しい。[0, n)の各iについて、r.execute(i, i + 1)の呼び出しが最大で1つだけ存在する。
  • r.set_value()が呼び出されたとき、[0, n)の各iに対して、r.execute(i, i + 1)の呼び出しが正確に1つだけ存在する。
  • r上での全てのexecute呼び出しは、r上でのset_valueset_errorset_stoppedいずれかの呼び出しよりも前に発生する
  • r上での全てのexecuteおよびset_value呼び出しは、*thisで表される実行コンテキストの実行エージェント上で行われる。

備考

sが参照するストレージは、この呼び出しによって開始された操作の実行期間中*thisによって一時的なストレージとして使用される可能性がある。

バージョン

言語

  • C++26

処理系

関連項目

参照