1 /* 2 * Copyright (c) 2021-2024 NVIDIA Corporation 3 * 4 * Licensed under the Apache License Version 2.0 with LLVM Exceptions 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * https://llvm.org/LICENSE.txt 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #pragma once 17 18 #include "__detail/__execution_fwd.hpp" 19 20 // include these after __execution_fwd.hpp 21 #include "__detail/__as_awaitable.hpp" 22 #include "__detail/__basic_sender.hpp" 23 #include "__detail/__bulk.hpp" 24 #include "__detail/__completion_signatures.hpp" 25 #include "__detail/__connect_awaitable.hpp" 26 #include "__detail/__continues_on.hpp" 27 #include "__detail/__cpo.hpp" 28 #include "__detail/__debug.hpp" 29 #include "__detail/__domain.hpp" 30 #include "__detail/__ensure_started.hpp" 31 #include "__detail/__env.hpp" 32 #include "__detail/__execute.hpp" 33 #include "__detail/__inline_scheduler.hpp" 34 #include "__detail/__into_variant.hpp" 35 #include "__detail/__intrusive_ptr.hpp" 36 #include "__detail/__intrusive_slist.hpp" 37 #include "__detail/__just.hpp" 38 #include "__detail/__let.hpp" 39 #include "__detail/__meta.hpp" 40 #include "__detail/__on.hpp" 41 #include "__detail/__operation_states.hpp" 42 #include "__detail/__read_env.hpp" 43 #include "__detail/__receiver_adaptor.hpp" 44 #include "__detail/__receivers.hpp" 45 #include "__detail/__run_loop.hpp" 46 #include "__detail/__schedule_from.hpp" 47 #include "__detail/__schedulers.hpp" 48 #include "__detail/__sender_adaptor_closure.hpp" 49 #include "__detail/__senders.hpp" 50 #include "__detail/__split.hpp" 51 #include "__detail/__start_detached.hpp" 52 #include "__detail/__starts_on.hpp" 53 #include "__detail/__stopped_as_error.hpp" 54 #include "__detail/__stopped_as_optional.hpp" 55 #include "__detail/__submit.hpp" 56 #include "__detail/__sync_wait.hpp" 57 #include "__detail/__then.hpp" 58 #include "__detail/__transfer_just.hpp" 59 #include "__detail/__transform_completion_signatures.hpp" 60 #include "__detail/__transform_sender.hpp" 61 #include "__detail/__type_traits.hpp" 62 #include "__detail/__upon_error.hpp" 63 #include "__detail/__upon_stopped.hpp" 64 #include "__detail/__utility.hpp" 65 #include "__detail/__when_all.hpp" 66 #include "__detail/__with_awaitable_senders.hpp" 67 #include "__detail/__write_env.hpp" 68 #include "concepts.hpp" 69 #include "coroutine.hpp" 70 #include "functional.hpp" 71 #include "stop_token.hpp" 72 73 // For issuing a meaningful diagnostic for the erroneous `snd1 | snd2`. 74 template <stdexec::sender _Ignore, stdexec::sender _Sender> 75 requires stdexec::__ok<stdexec::__bad_pipe_sink_t<_Sender>> 76 auto operator|(_Ignore&&, _Sender&&) noexcept; 77