@@ -42,25 +42,28 @@ namespace STDEXEC
4242 template <class T >
4343 concept __queryable = __std::destructible<T>;
4444
45+ STDEXEC_MODULE_EXPORT_AUTHORING
4546 template <class _Env , class _Query , class ... _Args>
46- concept __member_queryable_with = __queryable<_Env>
47- && requires (_Env const &__env,
48- _Query const &__query,
49- __declfn_t <_Args &&>... __args) {
50- { __env.query (__query, __args ()...) };
51- };
47+ concept __queryable_with = __queryable<_Env>
48+ && requires (_Env const &__env,
49+ _Query const &__query,
50+ __declfn_t <_Args &&>... __args) {
51+ { __env.query (__query, __args ()...) };
52+ };
5253
54+ STDEXEC_MODULE_EXPORT_AUTHORING
5355 template <class _Env , class _Query , class ... _Args>
54- concept __nothrow_member_queryable_with = __member_queryable_with <_Env, _Query, _Args...>
55- && requires (_Env const &__env,
56- _Query const &__query,
57- __declfn_t <_Args &&>... __args) {
58- { __env.query (__query, __args ()...) } noexcept ;
59- };
56+ concept __nothrow_queryable_with = __queryable_with <_Env, _Query, _Args...>
57+ && requires (_Env const &__env,
58+ _Query const &__query,
59+ __declfn_t <_Args &&>... __args) {
60+ { __env.query (__query, __args ()...) } noexcept ;
61+ };
6062
63+ STDEXEC_MODULE_EXPORT_AUTHORING
6164 template <class _Env , class _Qy , class ... _Args>
62- using __member_query_result_t = decltype (__declval<_Env const &>().query(__declval<_Qy const &>(),
63- __declval<_Args>()...));
65+ using __query_result_t = decltype (__declval<_Env const &>().query(__declval<_Qy const &>(),
66+ __declval<_Args>()...));
6467
6568 inline constexpr __none_such __no_default{};
6669
@@ -92,11 +95,11 @@ namespace STDEXEC
9295
9396 // Query with a .query member function:
9497 template <class _Qy = _Query, class _Env , class ... _Args>
95- requires __member_queryable_with <_Env const &, _Qy, _Args...>
98+ requires __queryable_with <_Env const &, _Qy, _Args...>
9699 STDEXEC_ATTRIBUTE (nodiscard, always_inline, host, device)
97100 constexpr auto operator ()(_Env const &__env, _Args &&...__args) const
98- noexcept (__nothrow_member_queryable_with <_Env, _Qy, _Args...>)
99- -> __mcall1<_Transform, __member_query_result_t <_Env, _Qy, _Args...>>
101+ noexcept (__nothrow_queryable_with <_Env, _Qy, _Args...>)
102+ -> __mcall1<_Transform, __query_result_t <_Env, _Qy, _Args...>>
100103 {
101104 if constexpr (__has_validation<_Query, _Env, _Args...>)
102105 {
@@ -106,18 +109,6 @@ namespace STDEXEC
106109 }
107110 };
108111
109- STDEXEC_MODULE_EXPORT_AUTHORING
110- template <class _Env , class _Query , class ... _Args>
111- concept __queryable_with = __callable<__query<_Query>, _Env &, _Args...>;
112-
113- STDEXEC_MODULE_EXPORT_AUTHORING
114- template <class _Env , class _Query , class ... _Args>
115- concept __nothrow_queryable_with = __nothrow_callable<__query<_Query>, _Env &, _Args...>;
116-
117- STDEXEC_MODULE_EXPORT_AUTHORING
118- template <class _Env , class _Query , class ... _Args>
119- using __query_result_t = __call_result_t <__query<_Query>, _Env &, _Args...>;
120-
121112 template <class _Env , class _Query , class ... _Args>
122113 concept __statically_queryable_with_impl = requires (_Query __q, _Args &&...__args) {
123114 std::remove_reference_t <_Env>::query (__q, static_cast <_Args &&>(__args)...);
@@ -163,7 +154,7 @@ STDEXEC_P2300_NAMESPACE_BEGIN()
163154 {
164155 if constexpr (STDEXEC ::__queryable_with<_Query, forwarding_query_t >)
165156 {
166- return STDEXEC ::__query< forwarding_query_t >()( _Query ());
157+ return _Query (). query ( forwarding_query_t ());
167158 }
168159 else
169160 {
0 commit comments