You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
of __transform_sender's operator() when I combine sender that requires transformation and let_value
I believe this is the bug of msvc, but probably it requires some workaround. To be honest I can't imagine how to do it, so just report it here.
The error appeared after I switched to the version of stdexec that announced receiver_ref in let_value. It reproduces only with senders that assume transformation before connecting in combination with let_value
>------ Build started: Project: CMakeLists, Configuration: RelWithDebInfo ------
[1/2] Building CXX object tests\CMakeFiles\let_test.dir\let_value.cpp.obj
FAILED: tests/CMakeFiles/let_test.dir/let_value.cpp.obj
C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\HOSTAR~1\x64\cl.exe /nologo /TP -IC:\Users\koloshmet\Programming\uvexec\build-ci\_deps\catch2-src\single_include -IC:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include /DWIN32 /D_WINDOWS /EHsc /Zi /O2 /Ob1 /DNDEBUG -std:c++20 -MD /Zc:__cplusplus /Zc:preprocessor /showIncludes /Fotests\CMakeFiles\let_test.dir\let_value.cpp.obj /Fdtests\CMakeFiles\let_test.dir\ /FS -c C:\Users\koloshmet\Programming\uvexec\tests\let_value.cpp
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(667): error C2131: expression did not evaluate to a constant
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: failure was caused by a read of an uninitialized symbol
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: see usage of 'stdexec::__nothrow_callable<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,const _Tp&>'
with
[
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: the template instantiation context (the oldest one first) is
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(859): note: see reference to function template instantiation 'auto stdexec::__get_completion_signatures::get_completion_signatures_t::__impl<_Sender,_Env>(void)' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(821): note: see reference to alias template instantiation 'stdexec::__get_completion_signatures::__tfx_sender<_Sender,_Env>' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(801): note: see reference to alias template instantiation 'stdexec::transform_sender_result_t<Domain,_Sender,_Env>' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(711): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::transform_sender_t,Domain,_Sender,_Env>' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_dependent_sender::operator ()<_Tp,stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>&,Env>(_Domain,_Sender,const _Env &) noexcept(<expr>) const'
with
[
_Tp=Domain,
_Domain=Domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(692): note: while compiling class template member function 'decltype(auto) stdexec::dependent_domain::transform_sender<_Tp&,_Env>(_Sender,const _Env &) noexcept(<expr>) const'
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Env=Env,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(743): note: see reference to function template instantiation 'bool stdexec::dependent_domain::__is_nothrow_transform_sender<_Sender,_Env>(void) noexcept' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon> &,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(584): note: while compiling class template member function 'unknown-type stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>::apply(_Sender &&,_ApplyFn &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(587): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__detail::__captures::<lambda_1>&,stdexec::__cplr,_ApplyFn>' being compiled
with
[
_ApplyFn=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(465): note: while compiling class template member function 'unknown-type stdexec::__detail::__captures::<lambda_1>::operator ()(_Cvref,_Fun &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(463): note: see reference to alias template instantiation 'stdexec::__call_result_t<_Tp,_Tag,____C_A_T_C_H____T_E_S_T____0::<lambda_2>&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>&>' being compiled
with
[
_Tp=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'auto stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>::operator ()<_Tp,____C_A_T_C_H____T_E_S_T____0::<lambda_2>&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>&>(_Tag,_Data,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>> &) const' being compiled
with
[
_Tp=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Data=____C_A_T_C_H____T_E_S_T____0::<lambda_2> &
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(734): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender::operator ()<stdexec::__domain::__transform_sender,stdexec::dependent_domain,_Tp,Env>(_Domain,_Sender &&,const Env &) noexcept(<expr>) const'
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(667): note: see reference to variable template 'bool __nothrow_callable<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env const &>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__concepts.hpp(31): note: see reference to variable template 'bool __callable<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env const &>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__concepts.hpp(27): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender_1::operator ()<_Domain,_Sender,_Tp>(_Domain,_Sender &&,const _Tp &) noexcept(<expr>) const'
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: see reference to function template instantiation 'bool stdexec::__domain::__transform_sender_1::__is_nothrow<_Domain,_Sender,const _Tp&>(void) noexcept' being compiled
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(634): note: see reference to variable template 'bool __has_transform_sender<stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env const &>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail/__domain.hpp(57): note: while compiling class template member function 'decltype(auto) stdexec::dependent_domain::transform_sender<_Sender,_Tp>(_Sender &&,const _Env &) noexcept(<expr>) const'
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(743): note: see reference to function template instantiation 'bool stdexec::dependent_domain::__is_nothrow_transform_sender<_Sender,_Env>(void) noexcept' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(584): note: while compiling class template member function 'unknown-type stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>::apply(_Sender &&,_ApplyFn &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(587): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__detail::__captures::<lambda_1>&&,stdexec::__cp,_ApplyFn>' being compiled
with
[
_ApplyFn=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(465): note: while compiling class template member function 'unknown-type stdexec::__detail::__captures::<lambda_1>::operator ()(_Cvref,_Fun &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(463): note: see reference to alias template instantiation 'stdexec::__call_result_t<_Tp,_Tag,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>' being compiled
with
[
_Tp=stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'auto stdexec::dependent_domain::__is_nothrow_transform_sender::<lambda_1>::operator ()<_Tp,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>(_Tag,_Data &&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>> &&) const' being compiled
with
[
_Tp=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Data=____C_A_T_C_H____T_E_S_T____0::<lambda_2>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(734): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender::operator ()<stdexec::__domain::__transform_sender,stdexec::dependent_domain,_Tp,Env>(_Domain,_Sender &&,const Env &) noexcept(<expr>) const'
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(649): error C2131: expression did not evaluate to a constant
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: failure was caused by call of undefined function or one not declared 'constexpr'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: see usage of 'stdexec::__domain::__transform_sender_1::__is_nothrow'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(649): note: the template instantiation context (the oldest one first) is
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(718): note: see reference to function template instantiation 'decltype(auto) stdexec::__domain::__transform_sender::operator ()<stdexec::__domain::__transform_sender,stdexec::dependent_domain,_Tp,Env>(_Domain,_Sender &&,const Env &) const' being compiled
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(668): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__domain::__transform_sender_1,stdexec::dependent_domain,_Tp,const Env&>' being compiled
with
[
_Tp=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: while compiling class template member function 'decltype(auto) stdexec::__domain::__transform_sender_1::operator ()<_Domain,_Sender,_Tp>(_Domain,_Sender &&,const _Tp &) noexcept(<expr>) const'
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(763): error C3779: 'stdexec::__domain::__transform_sender::operator ()': a function that returns 'decltype(auto)' cannot be used before it is defined
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(666): note: see declaration of 'stdexec::__domain::__transform_sender::operator ()'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(763): note: the template instantiation context (the oldest one first) is
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'decltype(auto) stdexec::__domain::__transform_sender_1::operator ()<_Domain,_Sender,_Tp>(_Domain,_Sender &&,const _Tp &) const' being compiled
with
[
_Domain=stdexec::dependent_domain,
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(650): note: see reference to variable template 'bool __has_transform_sender<stdexec::dependent_domain,stdexec::__sexpr<stdexec::A0x2990fd92::<lambda_71_>{},stdexec::A0x2990fd92::__anon>,Env>' being compiled
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail/__domain.hpp(56): note: see reference to function template instantiation 'decltype(auto) stdexec::dependent_domain::transform_sender<_Sender,_Tp>(_Sender &&,const _Env &) const' being compiled
with
[
_Sender=stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>,
_Tp=Env,
_Env=Env
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(584): note: while compiling class template member function 'unknown-type stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_71_>{},stdexec::`anonymous-namespace'::__anon>::apply(_Sender &&,_ApplyFn &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(587): note: see reference to alias template instantiation 'stdexec::__call_result_t<stdexec::__detail::__captures::<lambda_1>&&,stdexec::__cp,_ApplyFn>' being compiled
with
[
_ApplyFn=stdexec::dependent_domain::transform_sender::<lambda_1>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(465): note: while compiling class template member function 'unknown-type stdexec::__detail::__captures::<lambda_1>::operator ()(_Cvref,_Fun &&) noexcept(<expr>)'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(463): note: see reference to alias template instantiation 'stdexec::__call_result_t<_Tp,_Tag,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>' being compiled
with
[
_Tp=stdexec::dependent_domain::transform_sender::<lambda_1>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__meta.hpp(762): note: see reference to function template instantiation 'auto stdexec::dependent_domain::transform_sender::<lambda_1>::operator ()<_Tp,____C_A_T_C_H____T_E_S_T____0::<lambda_2>,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>>>(_Tag,_Data &&,IncompleteSender<stdexec::__sexpr<stdexec::`anonymous-namespace'::<lambda_60_>{},stdexec::`anonymous-namespace'::__anon>> &&) const' being compiled
with
[
_Tp=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Tag=stdexec::__let::__let_t<stdexec::__receivers::set_value_t,stdexec::dependent_domain>,
_Data=____C_A_T_C_H____T_E_S_T____0::<lambda_2>
]
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(748): error C3889: call to object of class type 'stdexec::__detail::__sexpr_apply_t': no matching call operator found
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(634): note: could be 'unknown-type stdexec::__detail::__sexpr_apply_t::operator ()(_Sender &&,_ApplyFn &&) noexcept(<expr>) const'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(721): error C3889: call to object of class type 'stdexec::__detail::__sexpr_apply_t': no matching call operator found
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\__detail\__basic_sender.hpp(634): note: could be 'unknown-type stdexec::__detail::__sexpr_apply_t::operator ()(_Sender &&,_ApplyFn &&) noexcept(<expr>) const'
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(721): error C2651: 'unknown-type': left of '::' must be a class, struct or union
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(721): error C2062: type 'unknown-type' unexpected
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(737): error C2039: 'value': is not a member of '`global namespace''
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec\execution.hpp(743): error C3615: constexpr function 'stdexec::dependent_domain::__is_nothrow_transform_sender' cannot result in a constant expression
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(718): note: failure was caused by control reaching the end of a constexpr function
C:\Users\koloshmet\Programming\uvexec\tests\let_value.cpp(90): error C3889: call to object of class type 'stdexec::__get_completion_signatures::get_completion_signatures_t': no matching call operator found
C:\Users\koloshmet\Programming\uvexec\build-ci\_deps\stdexec-src\include\stdexec/execution.hpp(859): note: could be 'unknown-type stdexec::__get_completion_signatures::get_completion_signatures_t::operator ()(_Sender &&,const _Env &) noexcept const'
ninja: build stopped: subcommand failed.
The text was updated successfully, but these errors were encountered:
koloshmet
changed the title
Transform
transform_sender compile error with mdvc
Apr 24, 2024
koloshmet
changed the title
transform_sender compile error with mdvc
transform_sender compile error with msvc
Apr 24, 2024
MSVC reports "expression did not evaluate to a constant" at this line
of
__transform_sender
'soperator()
when I combine sender that requires transformation and let_valueI believe this is the bug of msvc, but probably it requires some workaround. To be honest I can't imagine how to do it, so just report it here.
The error appeared after I switched to the version of stdexec that announced receiver_ref in let_value. It reproduces only with senders that assume transformation before connecting in combination with let_value
Minimal reproducible example
Error produced by MSVC 19.39
The text was updated successfully, but these errors were encountered: