| 365 | void (*__callback_)(__spawn_future_state*, void*) noexcept; |
| 366 | |
| 367 | void __destroy() noexcept |
| 368 | { |
| 369 | [[maybe_unused]] |
| 370 | auto __assoc = std::move(__assoc_); |
| 371 | |
| 372 | { |
| 373 | using __traits = |
| 374 | std::allocator_traits<_Alloc>::template rebind_traits<__spawn_future_state>; |
| 375 | typename __traits::allocator_type __alloc(std::move(__alloc_)); |
| 376 | __traits::destroy(__alloc, this); |
| 377 | __traits::deallocate(__alloc, this, 1); |
| 378 | } |
| 379 | } |
| 380 | |
| 381 | // NOTE: __rcvr's type is unconstrained because the thing we pass doesn't satisfy receiver |
| 382 | void __do_consume(auto& __rcvr) noexcept |