| 133 | STDEXEC_IMMOVABLE(__opstate); |
| 134 | |
| 135 | constexpr void start() & noexcept |
| 136 | { |
| 137 | STDEXEC_TRY |
| 138 | { |
| 139 | if constexpr (__callable<_Tag, env_of_t<_Receiver>>) |
| 140 | { |
| 141 | auto const & __env = get_env(__rcvr_); |
| 142 | STDEXEC::set_value(std::move(__rcvr_), _Tag{}(__env)); |
| 143 | } |
| 144 | else |
| 145 | { |
| 146 | STDEXEC::set_value(std::move(__rcvr_), std::move(__default_)); |
| 147 | } |
| 148 | } |
| 149 | STDEXEC_CATCH_ALL |
| 150 | { |
| 151 | STDEXEC::set_error(std::move(__rcvr_), std::current_exception()); |
| 152 | } |
| 153 | } |
| 154 | |
| 155 | STDEXEC_IMMOVABLE_NO_UNIQUE_ADDRESS |