#include <exec/task.hpp>
template <class T>
using Task = exec::basic_task<T, exec::__task::inline_task_context<T>>;
Task<void> coro() {
co_return;
}
Task<void> test() {
co_await coro();
}
int main() {
stdexec::sync_wait(test());
}
opt/compiler-explorer/libs/stdexec/trunk/include/exec/task.hpp:68:21: error: static assertion failed: exec::task<T> cannot be co_await-ed in a coroutine that does not have an associated start scheduler.
68 | static_assert(__indirect_start_scheduler_provider<_ParentPromise>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/compiler-explorer/libs/stdexec/trunk/include/exec/task.hpp:120:42: note: in instantiation of function template specialization 'experimental::execution::__task::__parent_promise_has_start_scheduler<experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__promise>' requested here
120 | if constexpr (__with_affinity && __parent_promise_has_start_scheduler<_ParentPromise>())
| ^
/opt/compiler-explorer/libs/stdexec/trunk/include/exec/../stdexec/__detail/__manual_lifetime.hpp:51:30: note: in instantiation of function template specialization 'experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>::__default_task_context_impl<experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__promise>' requested here
51 | _Ty{static_cast<_Args&&>(__args)...});
| ^
/opt/compiler-explorer/libs/stdexec/trunk/include/exec/../stdexec/__detail/__optional.hpp:108:30: note: in instantiation of function template specialization 'stdexec::__manual_lifetime<experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__construct<experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__promise &>' requested here
108 | _Tp& __t = __value_.__construct(static_cast<_Us&&>(__us)...);
| ^
/opt/compiler-explorer/libs/stdexec/trunk/include/exec/task.hpp:633:40: note: in instantiation of function template specialization 'stdexec::__opt::__optional<experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::emplace<experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__promise &>' requested here
633 | __coro_.promise().__context_.emplace(__parent.promise());
| ^
<source>:11:5: note: in instantiation of function template specialization 'experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__task_awaiter<experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__promise>::await_suspend<experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__promise>' requested here
11 | co_await coro();
| ^
/opt/compiler-explorer/libs/stdexec/trunk/include/exec/task.hpp:68:21: note: because 'experimental::execution::__task::basic_task<void, experimental::execution::__task::__default_task_context_impl<experimental::execution::__task::__scheduler_affinity::__none>>::__promise' does not satisfy '__indirect_start_scheduler_provider'
68 | static_assert(__indirect_start_scheduler_provider<_ParentPromise>,
| ^
/opt/compiler-explorer/libs/stdexec/trunk/include/exec/task.hpp:62:9: note: because 'get_start_scheduler(get_env(t))' would be invalid: no matching function for call to object of type 'const get_start_scheduler_t'
62 | { get_start_scheduler(get_env(t)) } -> scheduler;
| ^
1 error generated.
Compiler returned: 1