Compile failed on gcc-14
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Área
- build-system, compilers
Línea de trabajo
Reproduce el fallo con GCC 14.2.0 usando test/exec/async_scope/test_empty.cpp; después, inspecciona el cambio identificado mediante bisección y el código de completion-signature en include/stdexec/__detail/__let.hpp. Se considera terminado cuando el test compila correctamente con GCC 14.2.0 sin los errores reportados sobre __f y tipos de retorno inconsistentes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
gcc 14.2.0, sepecifically.
I've run git bisect, The issue was introduced in https://github.com/NVIDIA/stdexec/commit/1e21d785e0c7bee8391089e4179f493a487bc089
In file included from /home/dev/stdexec/include/stdexec/execution.hpp:39,
from /home/dev/stdexec/test/test_common/receivers.hpp:20,
from /home/dev/stdexec/test/exec/async_scope/test_empty.cpp:1:
/home/dev/stdexec/include/stdexec/__detail/__let.hpp: In instantiation of ‘static consteval auto std::execution::__let::__let_impl<_SetTag>::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; _SetTag = std::execution::__rcvrs::set_value_t]’:
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:670:67: required from ‘static consteval auto std::execution::__sexpr_impl<std::execution::__let::__let_t<_SetTag> >::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; _SetTag = std::execution::__rcvrs::set_value_t]’
670 | return STDEXEC::get_completion_signatures<__sndr_t, _Env...>();
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/dev/stdexec/include/stdexec/__detail/__starts_on.hpp:144:13: required from ‘static consteval auto std::execution::__sexpr_impl<std::execution::__starts_on_ns::starts_on_t>::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
144 | using __sndr_t =
| ^~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__sender_concepts.hpp:62:50: required from ‘auto [requires std::execution::__well_formed_sender<<placeholder>, >] std::execution::__starts_on_ns::starts_on_t::operator()(_Scheduler&&, _Sender&&) const [with _Scheduler = {anonymous}::impulse_scheduler&; _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>]’
62 | && __constant_completion_signatures<STDEXEC::get_completion_signatures<_Sender, _Env...>()>;
/home/dev/stdexec/test/exec/async_scope/test_empty.cpp:38:30: required from here
38 | scope.spawn(ex::starts_on(sch, ex::just()));
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:616:25: error: no class template named ‘__f’ in ‘struct std::execution::__let::__transform_signal_fn<std::execution::__rcvrs::set_value_t, typename std::decay<decltype (std::execution::__declval<std::execution::__let::__data<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__detail::__always<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__basic_sender<std::execution::__just::just_t, std::execution::__tup::__tuple<> > > > >().__fn)>::type>’
616 | if constexpr (__ok<__result_t>) {
| ^~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:55: error: inconsistent deduction for auto return type: ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’ and then ‘std::execution::_ERROR_<>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:68: error: too many initializers for ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
| ^
/home/dev/stdexec/include/stdexec/__detail/__let.hpp: In instantiation of ‘static consteval auto std::execution::__let::__let_impl<_SetTag>::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t}; _SetTag = std::execution::__rcvrs::set_value_t]’:
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {__env::__fwd<exec::__scope::__spawn_env_>::__t}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__sender_concepts.hpp:62:50: required by substitution of ‘template<class _Env, class _Sender> requires (__movable_value<_Env>) && (sender_in<_Sender, decltype(((const std::execution::__env::__join_fn&)&std::execution::__env::__join)((__declval<_Env>)(), std::execution::__declval()))>) && (sender_to<typename exec::__scope::__nest_sender<typename std::execution::__i<_Ok<typename std::decay<_Tp2>::type>, _Ok<std::execution::__id_<__has_id<typename std::decay<_Tp2>::type> > > >::__f::__f<typename std::decay<_Tp2>::type> >::__t, typename exec::__scope::__spawn_rcvr<typename std::execution::__i<_Ok<_Ty>, _Ok<std::execution::__id_<__has_id<_Ty> > > >::__f::__f<_Ty> >::__t>) void exec::__scope::async_scope::spawn(_Sender&&, _Env) [with _Env = std::execution::__env::env<>; _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>]’
62 | && __constant_completion_signatures<STDEXEC::get_completion_signatures<_Sender, _Env...>()>;
/home/dev/stdexec/test/exec/async_scope/test_empty.cpp:38:16: required from here
38 | scope.spawn(ex::starts_on(sch, ex::just()));
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:616:25: error: no class template named ‘__f’ in ‘struct std::execution::__let::__transform_signal_fn<std::execution::__rcvrs::set_value_t, typename std::decay<decltype (std::execution::__declval<std::execution::__let::__data<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__detail::__always<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__basic_sender<std::execution::__just::just_t, std::execution::__tup::__tuple<> > > > >().__fn)>::type, decltype (std::execution::__env::__join(__declval<decltype (__mk_env2<std::execution::__rcvrs::set_value_t>(__declval<decltype (std::execution::__declval<std::execution::__get_env::get_env_t>()(__declval<decltype (std::execution::__declval<std::execution::__let::__data<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__detail::__always<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__basic_sender<std::execution::__just::just_t, std::execution::__tup::__tuple<> > > > >().__sndr)>()))>(), std::execution::__declval<std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t>()))>(), std::execution::__declval<std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t>()))>’
616 | if constexpr (__ok<__result_t>) {
| ^~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:55: error: inconsistent deduction for auto return type: ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’ and then ‘std::execution::_ERROR_<>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:68: error: too many initializers for ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
| ^
In file included from /home/dev/stdexec/include/exec/sequence/../../stdexec/execution.hpp:39,
from /home/dev/stdexec/include/exec/sequence/empty_sequence.hpp:19,
from /home/dev/stdexec/test/exec/sequence/test_merge_each_threaded.cpp:18:
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__let.hpp: In instantiation of ‘static consteval auto std::execution::__let::__let_impl<_SetTag>::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; _SetTag = std::execution::__rcvrs::set_value_t]’:
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__let.hpp:670:67: required from ‘static consteval auto std::execution::__sexpr_impl<std::execution::__let::__let_t<_SetTag> >::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; _SetTag = std::execution::__rcvrs::set_value_t]’
670 | return STDEXEC::get_completion_signatures<__sndr_t, _Env...>();
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__concepts.hpp:45:31: recursively required by substitution of ‘template<class _Sender> requires (sender<_Sender>) && (__callable<const _Fn&, _Sender, const _As&...>) auto std::execution::__clsur::__closure<std::execution::__let::__let_t<std::execution::__rcvrs::set_value_t>, {anonymous}::<lambda()>::<lambda()> >::operator()(_Sender&&) const & [with _Sender = std::execution::__let::__let_t<std::execution::__rcvrs::set_value_t>]’
45 | static_cast<_Fun&&>(__fun)(static_cast<_As&&>(__as)...);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__concepts.hpp:45:31: required by substitution of ‘template<class _Sender, class _Closure> requires (sender<_Sender>) && (__sender_adaptor_closure_for<_Closure, _Sender>) std::execution::__call_result_t<_Closure, _Sender> std::execution::__clsur::operator|(_Sender&&, _Closure&&) [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Closure = std::execution::__clsur::__closure<std::execution::__let::__let_t<std::execution::__rcvrs::set_value_t>, {anonymous}::<lambda()>::<lambda()> >]’
/home/dev/stdexec/test/exec/sequence/test_merge_each_threaded.cpp:167:13: required from here
167 | });
| ^
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__let.hpp:616:25: error: no class template named ‘__f’ in ‘struct std::execution::__let::__transform_signal_fn<std::execution::__rcvrs::set_value_t, typename std::decay<decltype (std::execution::__declval<std::execution::__let::__data<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, {anonymous}::<lambda()>::<lambda()> > >().__fn)>::type>’
616 | if constexpr (__ok<__result_t>) {
| ^~~~~~~~~~~~~~~~
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__let.hpp:619:55: error: inconsistent deduction for auto return type: ‘std::execution::completion_signatures<std::execution::__rcvrs::set_stopped_t()>’ and then ‘std::execution::_ERROR_<>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
/home/dev/stdexec/include/exec/sequence/../../stdexec/__detail/__let.hpp:619:68: error: too many initializers for ‘std::execution::completion_signatures<std::execution::__rcvrs::set_stopped_t()>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
| ^
/home/dev/stdexec/include/stdexec/__detail/__let.hpp: In instantiation of ‘static consteval auto std::execution::__let::__let_impl<_SetTag>::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {std::execution::__env::env<std::execution::__env::prop<std::execution::__queries::get_stop_token_t, std::execution::inplace_stop_token>, const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&>}; _SetTag = std::execution::__rcvrs::set_value_t]’:
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {std::execution::__env::env<std::execution::__env::prop<std::execution::__queries::get_stop_token_t, std::execution::inplace_stop_token>, const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&>}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {std::execution::__env::env<std::execution::__env::prop<std::execution::__queries::get_stop_token_t, std::execution::inplace_stop_token>, const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&>}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {__env::env<__env::prop<__queries::get_stop_token_t, inplace_stop_token>, const __env::__fwd<exec::__scope::__spawn_env_>::__t&>}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:241:66: required by substitution of ‘template<class _Sender, class ... _Env> requires enable_sender<typename std::decay<_Tp>::type> using std::execution::__completion_signatures_of_t = decltype (get_completion_signatures<_Sender, _Env ...>()) [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {std::execution::__env::env<std::execution::__env::prop<std::execution::__queries::get_stop_token_t, std::execution::inplace_stop_token>, const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&>}]’
241 | decltype(STDEXEC::get_completion_signatures<_Sender, _Env...>());
/home/dev/stdexec/include/exec/async_scope.hpp:282:31: required by substitution of ‘template<class _Self, class ... _Env> requires __decays_to<_Self, exec::__scope::__nest_sender<_ConstrainedId>::__t> static consteval std::execution::__completion_signatures_of_t<typename decltype (__cpcvr<_Self>)::__f<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()> >, decltype (exec::make_env(__declval<_Env>(), std::execution::__declval<std::execution::__env::prop<std::execution::__queries::get_stop_token_t, std::execution::inplace_stop_token> >()))...> exec::__scope::__nest_sender<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()> >::__t::get_completion_signatures() [with _Self = exec::__scope::__nest_sender<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()> >::__t; _Env = {const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&}]’
282 | static consteval auto get_completion_signatures()
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = exec::__scope::__nest_sender<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()> >::__t; _Env = {const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = exec::__scope::__nest_sender<{anonymous}::__sexpr<<lambda closure object><lambda()>()> >::__t; _Env = {const __env::__fwd<exec::__scope::__spawn_env_>::__t&}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__sender_concepts.hpp:62:50: required by substitution of ‘template<class _Env, class _Sender> requires (__movable_value<_Env>) && (sender_in<_Sender, decltype(((const std::execution::__env::__join_fn&)&std::execution::__env::__join)((__declval<_Env>)(), std::execution::__declval()))>) && (sender_to<typename exec::__scope::__nest_sender<typename std::execution::__i<_Ok<typename std::decay<_Tp2>::type>, _Ok<std::execution::__id_<__has_id<typename std::decay<_Tp2>::type> > > >::__f::__f<typename std::decay<_Tp2>::type> >::__t, typename exec::__scope::__spawn_rcvr<typename std::execution::__i<_Ok<_Ty>, _Ok<std::execution::__id_<__has_id<_Ty> > > >::__f::__f<_Ty> >::__t>) void exec::__scope::async_scope::spawn(_Sender&&, _Env) [with _Env = std::execution::__env::env<>; _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>]’
62 | && __constant_completion_signatures<STDEXEC::get_completion_signatures<_Sender, _Env...>()>;
/home/dev/stdexec/test/exec/async_scope/test_empty.cpp:38:16: required from here
38 | scope.spawn(ex::starts_on(sch, ex::just()));
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:616:25: error: no class template named ‘__f’ in ‘struct std::execution::__let::__transform_signal_fn<std::execution::__rcvrs::set_value_t, typename std::decay<decltype (std::execution::__declval<std::execution::__let::__data<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__detail::__always<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__basic_sender<std::execution::__just::just_t, std::execution::__tup::__tuple<> > > > >().__fn)>::type, decltype (std::execution::__env::__join(__declval<decltype (__mk_env2<std::execution::__rcvrs::set_value_t>(__declval<decltype (std::execution::__declval<std::execution::__get_env::get_env_t>()(__declval<decltype (std::execution::__declval<std::execution::__let::__data<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__detail::__always<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__basic_sender<std::execution::__just::just_t, std::execution::__tup::__tuple<> > > > >().__sndr)>()))>(), std::execution::__declval<std::execution::__env::env<std::execution::__env::prop<std::execution::__queries::get_stop_token_t, std::execution::inplace_stop_token>, const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&> >()))>(), std::execution::__declval<std::execution::__env::env<std::execution::__env::prop<std::execution::__queries::get_stop_token_t, std::execution::inplace_stop_token>, const std::execution::__env::__fwd<exec::__scope::__spawn_env_>::__t&> >()))>’
616 | if constexpr (__ok<__result_t>) {
| ^~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:55: error: inconsistent deduction for auto return type: ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’ and then ‘std::execution::_ERROR_<>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:68: error: too many initializers for ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
| ^
/home/dev/stdexec/include/stdexec/__detail/__let.hpp: In instantiation of ‘static consteval auto std::execution::__let::__let_impl<_SetTag>::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; _SetTag = std::execution::__rcvrs::set_value_t]’:
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:670:67: required from ‘static consteval auto std::execution::__sexpr_impl<std::execution::__let::__let_t<_SetTag> >::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; _SetTag = std::execution::__rcvrs::set_value_t]’
670 | return STDEXEC::get_completion_signatures<__sndr_t, _Env...>();
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/dev/stdexec/include/stdexec/__detail/__starts_on.hpp:144:13: required from ‘static consteval auto std::execution::__sexpr_impl<std::execution::__starts_on_ns::starts_on_t>::get_completion_signatures() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
144 | using __sndr_t =
| ^~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__basic_sender.hpp:333:77: required from ‘static consteval auto std::execution::{anonymous}::__sexpr<_Descriptor>::get_completion_signatures() [with _Self = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}; auto _DescriptorFn = <lambda closure object>std::execution::<lambda()>()]’
333 | __sexpr_impl<_Tag>::template get_completion_signatures<_Self, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:146:21: required from ‘consteval auto std::execution::__cmplsigs::__get_completion_signatures_helper() [with _Sender = std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>; _Env = {}]’
93 | STDEXEC_PP_FRONT(__VA_ARGS__))::template get_completion_signatures<__VA_ARGS__>()
/home/dev/stdexec/include/stdexec/__detail/__get_completion_signatures.hpp:225:81: required from ‘consteval auto [requires std::execution::__well_formed_completions<<placeholder>, >] std::execution::get_completion_signatures() [with _Sender = {anonymous}::__sexpr<<lambda closure object><lambda()>()>; _Env = {}]’
225 | return __cmplsigs::__get_completion_signatures_helper<_NewSender, _Env...>();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/dev/stdexec/include/stdexec/__detail/__sender_concepts.hpp:62:50: required from ‘auto [requires std::execution::__well_formed_sender<<placeholder>, >] std::execution::__starts_on_ns::starts_on_t::operator()(_Scheduler&&, _Sender&&) const [with _Scheduler = {anonymous}::impulse_scheduler&; _Sender = exec::__scope::__when_empty_sender<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()> >::__t]’
62 | && __constant_completion_signatures<STDEXEC::get_completion_signatures<_Sender, _Env...>()>;
/home/dev/stdexec/test/exec/async_scope/test_empty.cpp:42:40: required from here
42 | ex::sender auto snd = ex::starts_on(sch, scope.on_empty()) | ex::then([&] { is_empty = true; });
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:616:25: error: no class template named ‘__f’ in ‘struct std::execution::__let::__transform_signal_fn<std::execution::__rcvrs::set_value_t, typename std::decay<decltype (std::execution::__declval<std::execution::__let::__data<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()>, std::execution::__detail::__always<exec::__scope::__when_empty_sender<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()> >::__t, exec::__scope::__when_empty_sender<std::execution::{anonymous}::__sexpr<<lambda closure object>std::execution::<lambda()>()> > > > >().__fn)>::type>’
616 | if constexpr (__ok<__result_t>) {
| ^~~~~~~~~~~~~~~~
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:55: error: inconsistent deduction for auto return type: ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’ and then ‘std::execution::_ERROR_<>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
/home/dev/stdexec/include/stdexec/__detail/__let.hpp:619:68: error: too many initializers for ‘std::execution::completion_signatures<std::execution::__rcvrs::set_value_t(), std::execution::__rcvrs::set_stopped_t()>’
619 | return STDEXEC::__throw_compile_time_error(__result_t());
- Lenguaje dominante
- C++
- Estrellas
- 2.4k
- Forks
- 270
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 37
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/stdexec
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 66/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
Todos los issues de NVIDIA/stdexec
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
AXERA-TECH/ax-llm#77 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
games-on-whales/wolf#509 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
bug-unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100