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
を満たす。
効果
説明用の式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_allocator
get_stop_token
execution::get_domain
execution::get_scheduler
execution::get_delegation_scheduler
execution::get_completion_scheduler
下記クエリオブジェクトに対する問い合わせは、FWD-ENV
経由で転送されない。
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??