Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Compile failed on gcc-14

オープン
#1,779 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞

調査の方向性

test/exec/async_scope/test_empty.cpp を使用して GCC 14.2.0 で失敗を再現し、その後、二分探索で特定された変更と include/stdexec/__detail/__let.hpp の completion-signature コードを調査します。GCC 14.2.0 で test が正常にコンパイルされ、報告されている __f および一貫性のない return-type のエラーが発生しなければ完了です。

索引モデルが issue の本文から書いたものです。

説明

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());
主要言語
C++
スター
2.5k
フォーク
276
平均マージ
1日 16時間
マージ済み PR(30日)
45

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

NVIDIA/stdexec のほかの issue

NVIDIA/stdexec の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。