2121#include " __awaitable.hpp"
2222#include " __completion_signatures.hpp"
2323#include " __concepts.hpp"
24+ #include " __diagnostics.hpp"
2425#include " __domain.hpp"
2526#include " __env.hpp"
2627#include " __receivers.hpp"
@@ -51,7 +52,7 @@ namespace stdexec {
5152
5253 template <class _Sender , class ... _Env>
5354 concept sender_in =
54- (sizeof ...(_Env) <= 1 ) && sender<_Sender> && requires (_Sender&& __sndr, _Env&&... __env) {
55+ (sizeof ...(_Env) <= 1 ) && sender<_Sender> && requires (_Sender && __sndr, _Env &&...__env) {
5556 {
5657 get_completion_signatures (static_cast <_Sender &&>(__sndr), static_cast <_Env &&>(__env)...)
5758 } -> __valid_completion_signatures;
@@ -62,26 +63,24 @@ namespace stdexec {
6263 template <class _Sender , class _Receiver >
6364 concept sender_to = receiver<_Receiver> && sender_in<_Sender, env_of_t <_Receiver>>
6465 && __receiver_from<_Receiver, _Sender>
65- && requires (_Sender&& __sndr, _Receiver&& __rcvr) {
66+ && requires (_Sender && __sndr, _Receiver && __rcvr) {
6667 connect (static_cast <_Sender &&>(__sndr), static_cast <_Receiver &&>(__rcvr));
6768 };
6869
6970 template <class _Sender , class _Receiver >
7071 using connect_result_t = __call_result_t <connect_t , _Sender, _Receiver>;
7172
72- // Used to report a meaningful error message when the sender_in<Sndr, Env> concept check fails.
73+ // Used to report a meaningful error message when the sender_in<Sndr, Env>
74+ // concept check fails.
7375 template <class _Sender , class ... _Env>
7476 auto __diagnose_sender_concept_failure () {
7577 if constexpr (!enable_sender<__decay_t <_Sender>>) {
76- static_assert (
77- enable_sender<_Sender>,
78- " The given type is not a sender because stdexec::enable_sender<Sender> is false. Either "
79- " give the type a nested ::sender_concept typedef that is an alias for stdexec::sender_t, "
80- " or else specialize the stdexec::enable_sender boolean trait for this type to true." );
78+ static_assert (enable_sender<_Sender>, STDEXEC_ERROR_ENABLE_SENDER_IS_FALSE);
8179 } else if constexpr (!__detail::__consistent_completion_domains<_Sender>) {
8280 static_assert (
8381 __detail::__consistent_completion_domains<_Sender>,
84- " The completion schedulers of the sender do not have consistent domains. This is likely a "
82+ " The completion schedulers of the sender do not have "
83+ " consistent domains. This is likely a "
8584 " bug in the sender implementation." );
8685 } else if constexpr (!move_constructible<__decay_t <_Sender>>) {
8786 static_assert (
@@ -93,28 +92,18 @@ namespace stdexec {
9392 } else {
9493 using _Completions = __completion_signatures_of_t <_Sender, _Env...>;
9594 if constexpr (__same_as<_Completions, __unrecognized_sender_error<_Sender, _Env...>>) {
96- static_assert (
97- __mnever<_Completions>,
98- " The sender type was not able to report its completion signatures when asked. This is "
99- " either because it lacks the necessary member functions, or because the member functions "
100- " were ill-formed.\n\n A sender can declare its completion signatures in one of two ways:\n "
101- " 1. By defining a nested type alias named `completion_signatures` that is a\n "
102- " specialization of stdexec::completion_signatures<...>.\n "
103- " 2. By defining a member function named `get_completion_signatures` that returns a\n "
104- " specialization of stdexec::completion_signatures<...>." );
95+ static_assert (__mnever<_Completions>, STDEXEC_ERROR_CANNOT_COMPUTE_COMPLETION_SIGNATURES);
10596 } else if constexpr (__merror<_Completions>) {
10697 static_assert (
107- !__merror<_Completions>,
108- " Trying to compute the sender's completion signatures resulted in an error. See the rest "
109- " of the compiler diagnostic for clues. Look for the string \" _ERROR_\" ." );
98+ !__merror<_Completions>, STDEXEC_ERROR_GET_COMPLETION_SIGNATURES_RETURNED_AN_ERROR);
11099 } else {
111100 static_assert (
112101 __valid_completion_signatures<_Completions>,
113- " The stdexec::sender_in<Sender, Environment> concept check has failed. This is likely a "
114- " bug in the sender implementation." );
102+ STDEXEC_ERROR_GET_COMPLETION_SIGNATURES_HAS_INVALID_RETURN_TYPE);
115103 }
116104#if STDEXEC_MSVC() || STDEXEC_NVHPC()
117- // MSVC and NVHPC need more encouragement to print the type of the error.
105+ // MSVC and NVHPC need more encouragement to print the type of the
106+ // error.
118107 _Completions __what = 0 ;
119108#endif
120109 }
0 commit comments