From 3b54ceca9a769037b215181d19083945b6e269bd Mon Sep 17 00:00:00 2001 From: Eric Niebler Date: Thu, 19 Feb 2026 17:30:11 -0800 Subject: [PATCH] drop support for legacy ways to opt in to `sender` and `receiver` concepts --- include/stdexec/__detail/__receivers.hpp | 9 ++------- include/stdexec/__detail/__sender_concepts.hpp | 1 - 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/include/stdexec/__detail/__receivers.hpp b/include/stdexec/__detail/__receivers.hpp index fd72b3bcb..6d49ba7e2 100644 --- a/include/stdexec/__detail/__receivers.hpp +++ b/include/stdexec/__detail/__receivers.hpp @@ -167,16 +167,11 @@ namespace STDEXEC { (STDEXEC_PP_WHEN( STDEXEC_EDG(), requires { typename _Receiver::receiver_concept; } &&) - __std::derived_from) - || requires { typename _Receiver::is_receiver; } // back-compat, NOT TO SPEC - || STDEXEC_IS_BASE_OF(receiver_t, _Receiver); // NOT TO SPEC, for receiver_adaptor + __std::derived_from); } // namespace __detail template - inline constexpr bool enable_receiver = __detail::__enable_receiver<_Receiver>; // NOT TO SPEC - - template - concept receiver = enable_receiver<__decay_t<_Receiver>> + concept receiver = __detail::__enable_receiver<__decay_t<_Receiver>> && __environment_provider<__cref_t<_Receiver>> && __nothrow_move_constructible<__decay_t<_Receiver>> && __std::constructible_from<__decay_t<_Receiver>, _Receiver>; diff --git a/include/stdexec/__detail/__sender_concepts.hpp b/include/stdexec/__detail/__sender_concepts.hpp index 4f173d583..ef10820b6 100644 --- a/include/stdexec/__detail/__sender_concepts.hpp +++ b/include/stdexec/__detail/__sender_concepts.hpp @@ -38,7 +38,6 @@ namespace STDEXEC { namespace __detail { template concept __enable_sender = __std::derived_from - || requires { typename _Sender::is_sender; } // NOT TO SPEC back compat || __awaitable<_Sender, __detail::__promise>>; } // namespace __detail