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

履歴 編集

concept
<execution>

std::queryable(C++26)

template<class T>
concept queryable = destructible<T>;

概要

queryableは、型Tがクエリ可能オブジェクトの制約を満たすことを表す説明専用のコンセプトである。

クエリ可能オブジェクト(queryable object)

クエリ可能オブジェクトは、クエリオブジェクトをキーとして対応する値を保持する、読み取り専用のKey/Valueデータ構造とみなせる。

  • execution::env<>{} : 空のクエリ可能オブジェクト
  • execution::prop(q, v) : キーqと対応値vを保持する最小のクエリ可能オブジェクト
  • execution::env{...} : 複数のKey/Valueを保持するクエリ可能オブジェクト
  • queryableコンセプトを満たすユーザ定義クラスのオブジェクト

実行制御ライブラリでは、下記のオブジェクトがクエリ可能オブジェクトとされる。

クエリオブジェクト(query object)

クエリオブジェクトは、クエリ可能オブジェクトに対する問い合わせ(query)を行うカスタマイゼーションポイントオブジェクトである。

説明用のクエリオブジェクトq、クエリ可能オブジェクトenv、引数パックargsとしたとき

  • 問い合わせ式q(env, args...)は、void型であってはならない。
  • 問い合わせ式q(env, args...)は、クエリオブジェクトや引数を変更せず、等しさを保持(equality-preserving)する。
  • env.query(q, args...)適格であれば、問い合わせ式q(env, args...)と等価である。

モデル

説明用のenvEnv型のオブジェクトとする。 呼び出し可能オブジェクトqと部分式パックargsに対して、requires { q(env, args...) }trueであれば、q(env, args...)qに課されるセマンティック要件を満たす場合に、Envqueryableのモデルである。

備考

Senderに関連付けられたクエリ可能オブジェクトは「属性(attributes)」と呼ばれるが、実行制御ライブラリの仕様記述ではReceiverの「環境(environment)」と合わせてEnv型や識別子名envとして包括的に言及される。

バージョン

言語

  • C++26

関連項目

参照