Skip to content

Commit 03ea969

Browse files
committed
address some portability issues with gcc-11
1 parent 9fba24b commit 03ea969

3 files changed

Lines changed: 6 additions & 4 deletions

File tree

include/stdexec/__detail/__basic_sender.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ namespace stdexec {
168168
};
169169

170170
template <class _Sexpr, class _Receiver>
171-
struct __state_box {
171+
struct __state_box : __immovable {
172172
using __tag_t = typename __decay_t<_Sexpr>::__tag_t;
173173
using __state_t = __state_type_t<__tag_t, _Sexpr, _Receiver>;
174174

include/stdexec/__detail/__start_detached.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ namespace stdexec {
5858
};
5959

6060
template <class _SenderId, class _EnvId>
61-
struct __operation {
61+
struct __operation : __immovable {
6262
using _Sender = __cvref_t<_SenderId>;
6363
using _Env = __t<_EnvId>;
6464

include/stdexec/__detail/__submit.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,13 @@ namespace stdexec {
3434
template <class _CvSenderId, class _ReceiverId>
3535
struct __data {
3636
using _CvSender = __cvref_t<_CvSenderId>;
37-
using _Receiver = __t<_ReceiverId>;
37+
using _Receiver = stdexec::__t<_ReceiverId>;
3838

3939
struct __t {
4040
using operation_state_concept = operation_state_t;
4141
using __id = __data;
4242

43+
STDEXEC_IMMOVABLE(__t);
4344
explicit __t(_CvSender&& __sndr, _Receiver __rcvr) noexcept(
4445
__nothrow_connectable<_CvSender, _Receiver>)
4546
: __op_(connect(static_cast<_CvSender&&>(__sndr), static_cast<_Receiver&&>(__rcvr))) {
@@ -63,7 +64,8 @@ namespace stdexec {
6364
template <class _Sender, class _Receiver, class _Default = __void>
6465
requires sender_to<_Sender, _Receiver>
6566
auto operator()(_Sender&& __sndr, _Receiver __rcvr, _Default = {}) const
66-
noexcept(__nothrow_connectable<_Sender, _Receiver>) {
67+
noexcept(__nothrow_connectable<_Sender, _Receiver>)
68+
-> __submit::__op_data<_Sender, _Receiver> {
6769
return __submit::__op_data<_Sender, _Receiver>{
6870
static_cast<_Sender&&>(__sndr), static_cast<_Receiver&&>(__rcvr)};
6971
}

0 commit comments

Comments
 (0)