33 Execution control library [exec] (original) (raw)
33.11 Queryable utilities [exec.envs]
33.11.1 Class template prop [exec.prop]
namespace std::execution { template<class QueryTag, class ValueType> struct prop { QueryTag query_; ValueType value_; constexpr const ValueType& query(QueryTag) const noexcept { return value_;} };template<class QueryTag, class ValueType> prop(QueryTag, ValueType) -> prop<QueryTag, unwrap_reference_t<ValueType>>;}
Class template prop is for building a queryable object from a query object and a value.
Mandates: callable<QueryTag, _prop-like_<ValueType>>is modeled, where prop-like is the following exposition-only class template:template<class ValueType> struct prop-like { const ValueType& query(auto) const noexcept;};
[Example 1: template<sender Sndr>sender auto parameterize_work(Sndr sndr) { auto e = prop(get_allocator, my_alloc{});return write_env(sndr, e);} — _end example_]
Specializations of prop are not assignable.