namespace std {
struct forwarding_query_t { unspecified };
inline constexpr forwarding_query_t forwarding_query{};
}
概要
forwarding_queryは、対象クエリオブジェクトに対してクエリ可能アダプタを通じて転送可能か否かを確認するクエリオブジェクトである。
説明専用の式 FWD-ENV
説明用のクエリ可能オブジェクトenv、クエリオブジェクトq、パック式asに対して、式FWD-ENV(env)は下記の通り定義される。
forwarding_query(q) == falseならば、式FWD-ENV(env).query(q, as...)は不適格となる。- そうでなければ、式
FWD-ENV(env)は式env.query(q, as...)と等価であり、その型はqueryableを満たす。
また、説明専用の型FWD-ENV-T(Env)をdecltype(FWD-ENV(declval<Env>()))と定義する。
効果
説明用の式qをQ型のクエリオブジェクトとしたとき、呼び出し式forwarding_query(q)は下記と等価であり、bool型の値となる。
- 式
q.query(forwarding_query)が適格であれば、同式のbool値。qがコア定数式ならば、q.query(forwarding_query)もコア定数式となる。
- そうではなく、
derived_from<Q, forwarding_query_t> == trueならばtrue - そうでなければ、
false
カスタマイゼーションポイント
クエリ可能オブジェクトqに対して式q.query(forwarding_query)が呼び出される。
このときnoexcept(q.query(forwarding_query)) == trueであること。
備考
下記クエリオブジェクトに対する問い合わせは、FWD-ENV経由で転送される。
forwarding_query自身get_allocatorget_stop_tokenexecution::get_domainexecution::get_schedulerexecution::get_delegation_schedulerexecution::get_completion_schedulerexecution::get_await_completion_adaptor
下記クエリオブジェクトに対する問い合わせは、FWD-ENV経由で転送されない。
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??