Skip to content

Boost.Beast unable to use asioexec::use_sender #1534

@SidneyCogdill

Description

@SidneyCogdill
#include <asioexec/use_sender.hpp>
#include <exec/task.hpp>

#include <boost/beast.hpp>

auto foo(boost::beast::tcp_stream stream) -> exec::task<void> {
  boost::beast::flat_buffer buffer;

  boost::beast::http::request<boost::beast::http::string_body> req;
  auto bytes_read = co_await boost::beast::http::async_read(
      stream, buffer, req, asioexec::use_sender);
}

Error occurs within boost/beast/http/impl/read.hpp:

// If you get an error on the following line it means
// that your handler does not meet the documented type
// requirements for the handler.

static_assert(
    beast::detail::is_invocable<ReadHandler,
    void(error_code, std::size_t)>::value,
    "ReadHandler type requirements not met");
...
Compile time error
[proc] Executing command: /home/user/.local/bin/cmake --build ./build --config Debug --target all  --
[build] [1/2   0% :: 0.010] Re-checking globbed directories...
[build] [1/8  12% :: 0.365] Scanning ./main.cpp for CXX dependencies
[build] [2/8  25% :: 0.373] Generating CXX dyndep file CMakeFiles/hello_world.dir/CXX.dd
[build] [3/4  75% :: 6.722] Building CXX object CMakeFiles/hello_world.dir/main.cpp.o
[build] FAILED: CMakeFiles/hello_world.dir/main.cpp.o 
[build] /usr/bin/clang++-21 -I./build/_deps/stdexec-src/include -I./build/_deps/stdexec-build/include -g -std=gnu++23 -MD -MT CMakeFiles/hello_world.dir/main.cpp.o -MF CMakeFiles/hello_world.dir/main.cpp.o.d @CMakeFiles/hello_world.dir/main.cpp.o.modmap -o CMakeFiles/hello_world.dir/main.cpp.o -c ./main.cpp
[build] In file included from ./main.cpp:5:
[build] In file included from /usr/include/boost/beast.hpp:16:
[build] In file included from /usr/include/boost/beast/http.hpp:29:
[build] In file included from /usr/include/boost/beast/http/read.hpp:843:
[build] /usr/include/boost/beast/http/impl/read.hpp:148:13: error: static assertion failed due to requirement 'beast::detail::is_invocable<asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void, exec::__task::__default_task_context_impl<exec::__task::__scheduler_affinity::__sticky>>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>, void (boost::system::error_code, unsigned long)>::value': ReadHandler type requirements not met
[build]   148 |             beast::detail::is_invocable<ReadHandler,
[build]       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build]   149 |             void(error_code, std::size_t)>::value,
[build]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build] /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63:14: note: in instantiation of function template specialization 'boost::beast::http::detail::run_read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>>::operator()<asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::basic_string_body<char>, std::allocator<char>>' requested here
[build]    63 |     { return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); }
[build]       |              ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__operation_states.hpp:38:14: note: in instantiation of member function 'asioexec::detail::completion_token::operation_state<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>, boost::beast::http::detail::run_read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>>, std::tuple<boost::beast::basic_flat_buffer<std::allocator<char>> *, boost::beast::http::message<true, boost::beast::http::basic_string_body<char>> *>>::start' requested here
[build]    38 |         __op.start();
[build]       |              ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__tag_invoke.hpp:100:16: note: in instantiation of function template specialization 'stdexec::__start::tag_invoke<stdexec::__start::start_t, asioexec::detail::completion_token::operation_state<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>, boost::beast::http::detail::run_read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>>, std::tuple<boost::beast::basic_flat_buffer<std::allocator<char>> *, boost::beast::http::message<true, boost::beast::http::basic_string_body<char>> *>>>' requested here
[build]   100 |         return tag_invoke(static_cast<_Tag&&>(__tag), static_cast<_Args&&>(__args)...);
[build]       |                ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:128:12: note: in instantiation of function template specialization 'stdexec::__start::start_t::operator()<asioexec::detail::completion_token::operation_state<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>, boost::beast::http::detail::run_read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>>, std::tuple<boost::beast::basic_flat_buffer<std::allocator<char>> *, boost::beast::http::message<true, boost::beast::http::basic_string_body<char>> *>>>' requested here
[build]   128 |           (_StartTag()(__ops), ...);
[build]       |            ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__operation_states.hpp:38:14: note: in instantiation of member function 'stdexec::__op_state<stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>::__t>::start' requested here
[build]    38 |         __op.start();
[build]       |              ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__tag_invoke.hpp:100:16: note: in instantiation of function template specialization 'stdexec::__start::tag_invoke<stdexec::__start::start_t, stdexec::__op_state<stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>::__t>>' requested here
[build]   100 |         return tag_invoke(static_cast<_Tag&&>(__tag), static_cast<_Args&&>(__args)...);
[build]       |                ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__as_awaitable.hpp:168:11: note: in instantiation of function template specialization 'stdexec::__start::start_t::operator()<stdexec::__op_state<stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>::__t>>' requested here
[build]   168 |           stdexec::start(__op_state_);
[build]       |           ^
[build] ./main.cpp:213:14: note: in instantiation of member function 'stdexec::__as_awaitable::__sender_awaitable<exec::__task::basic_task<void>::__promise, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>>::__t::await_suspend' requested here
[build]   213 |     auto a = co_await boost::beast::http::async_read(stream, buffer, req,
[build]       |              ^
[build] In file included from ./main.cpp:5:
[build] In file included from /usr/include/boost/beast.hpp:15:
[build] In file included from /usr/include/boost/beast/core.hpp:15:
[build] /usr/include/boost/beast/core/async_base.hpp:458:9: error: no matching function for call to object of type 'asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>'
[build]   458 |         h_(std::forward<Args>(args)...);
[build]       |         ^~
[build] /usr/include/boost/beast/http/impl/read.hpp:115:15: note: in instantiation of function template specialization 'boost::beast::async_base<asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>, boost::asio::any_io_executor>::complete_now<boost::system::error_code &, unsigned long &>' requested here
[build]   115 |         this->complete_now(ec, bytes_transferred);
[build]       |               ^
[build] /usr/include/boost/asio/composed.hpp:155:5: note: in instantiation of member function 'boost::beast::http::detail::read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::basic_string_body<char>, std::allocator<char>, asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>>::operator()' requested here
[build]   155 |     static_cast<Handler&&>(this->handler_)(static_cast<Args&&>(args)...);
[build]       |     ^
[build] /usr/include/boost/beast/http/impl/read.hpp:325:18: note: in instantiation of member function 'boost::asio::detail::composed_op<boost::beast::http::detail::read_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::detail::parser_is_done>, boost::asio::detail::composed_work<void (boost::asio::any_io_executor)>, boost::beast::http::detail::read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::basic_string_body<char>, std::allocator<char>, asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>>, void (boost::system::error_code, unsigned long)>::complete' requested here
[build]   325 |             self.complete(ec, bytes_transferred_);
[build]       |                  ^
[build] /usr/include/boost/asio/composed.hpp:149:5: note: in instantiation of function template specialization 'boost::beast::http::detail::read_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::detail::parser_is_done>::operator()<boost::asio::detail::composed_op<boost::beast::http::detail::read_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::detail::parser_is_done>, boost::asio::detail::composed_work<void (boost::asio::any_io_executor)>, boost::beast::http::detail::read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::basic_string_body<char>, std::allocator<char>, asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>>, void (boost::system::error_code, unsigned long)>>' requested here
[build]   149 |     this->impl_(*this, static_cast<T&&>(t)...);
[build]       |     ^
[build] /usr/include/boost/asio/composed.hpp:224:5: note: in instantiation of function template specialization 'boost::asio::detail::composed_op<boost::beast::http::detail::read_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::detail::parser_is_done>, boost::asio::detail::composed_work<void (boost::asio::any_io_executor)>, boost::beast::http::detail::read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>, boost::beast::basic_flat_buffer<std::allocator<char>>, true, boost::beast::http::basic_string_body<char>, std::allocator<char>, asioexec::detail::completion_token::completion_handler<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>>>, void (boost::system::error_code, unsigned long)>::operator()<>' requested here
[build]   224 |     composed_op<decay_t<Implementation>, composed_work<Executors>,
[build]       |     ^
[build] /usr/include/boost/asio/async_result.hpp:329:5: note: (skipping 8 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
[build]   329 |     static_cast<Initiation&&>(initiation)(
[build]       |     ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:128:12: note: in instantiation of function template specialization 'stdexec::__start::start_t::operator()<asioexec::detail::completion_token::operation_state<stdexec::completion_signatures<stdexec::__rcvrs::set_value_t (boost::system::error_code, unsigned long), stdexec::__rcvrs::set_error_t (std::__exception_ptr::exception_ptr), stdexec::__rcvrs::set_stopped_t ()>, asioexec::detail::use_sender::receiver<stdexec::__rcvr<stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, 0>::__t>, boost::beast::http::detail::run_read_msg_op<boost::beast::basic_stream<boost::asio::ip::tcp>>, std::tuple<boost::beast::basic_flat_buffer<std::allocator<char>> *, boost::beast::http::message<true, boost::beast::http::basic_string_body<char>> *>>>' requested here
[build]   128 |           (_StartTag()(__ops), ...);
[build]       |            ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__operation_states.hpp:38:14: note: in instantiation of member function 'stdexec::__op_state<stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>::__t>::start' requested here
[build]    38 |         __op.start();
[build]       |              ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__tag_invoke.hpp:100:16: note: in instantiation of function template specialization 'stdexec::__start::tag_invoke<stdexec::__start::start_t, stdexec::__op_state<stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>::__t>>' requested here
[build]   100 |         return tag_invoke(static_cast<_Tag&&>(__tag), static_cast<_Args&&>(__args)...);
[build]       |                ^
[build] ./build/_deps/stdexec-src/include/stdexec/__detail/__as_awaitable.hpp:168:11: note: in instantiation of function template specialization 'stdexec::__start::start_t::operator()<stdexec::__op_state<stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>, stdexec::__as_awaitable::__receiver<exec::__task::basic_task<void>::__promise, unsigned long>::__t>>' requested here
[build]   168 |           stdexec::start(__op_state_);
[build]       |           ^
[build] ./main.cpp:213:14: note: in instantiation of member function 'stdexec::__as_awaitable::__sender_awaitable<exec::__task::basic_task<void>::__promise, stdexec::(anonymous namespace)::__sexpr<stdexec::(lambda at ./build/_deps/stdexec-src/include/stdexec/__detail/__basic_sender.hpp:45:7){}>>::__t::await_suspend' requested here
[build]   213 |     auto a = co_await boost::beast::http::async_read(stream, buffer, req,
[build]       |              ^
[build] ./build/_deps/stdexec-src/include/asioexec/completion_token.hpp:246:12: note: candidate function template not viable: expects an rvalue for object argument
[build]   246 |       void operator()(Args&&... args) && noexcept {
[build]       |            ^
[build] 2 errors generated.
[build] ninja: build stopped: subcommand failed.
[proc] The command: /home/user/.local/bin/cmake --build ./build/vscode --config Debug --target all  -- exited with code: 1
[driver] Build completed: 00:00:07.149
Boost version is 1.88
> dpkg -s libboost1.88-all-dev
Package: libboost1.88-all-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 2139
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Source: boost1.88
Version: 1.88.0~beta1-1ubuntu1
Depends: libboost1.88-dev, libboost1.88-tools-dev, libboost-atomic1.88-dev, libboost-chrono1.88-dev, libboost-container1.88-dev, libboost-context1.88-dev, libboost-coroutine1.88-dev, libboost-date-time1.88-dev, libboost-exception1.88-dev, libboost-fiber1.88-dev, libboost-filesystem1.88-dev, libboost-graph-parallel1.88-dev, libboost-graph1.88-dev, libboost-iostreams1.88-dev, libboost-json1.88-dev, libboost-locale1.88-dev, libboost-log1.88-dev, libboost-math1.88-dev, libboost-mpi-python1.88-dev, libboost-mpi1.88-dev, libboost-nowide1.88-dev, libboost-numpy1.88-dev, libboost-program-options1.88-dev, libboost-python1.88-dev, libboost-random1.88-dev, libboost-regex1.88-dev, libboost-serialization1.88-dev, libboost-stacktrace1.88-dev, libboost-system1.88-dev, libboost-test1.88-dev, libboost-thread1.88-dev, libboost-timer1.88-dev, libboost-type-erasure1.88-dev, libboost-url1.88-dev, libboost-wave1.88-dev
Description: Boost C++ Libraries development files (ALL)
 The Boost web site provides free, peer-reviewed, portable C++ source
 libraries. The emphasis is on libraries which work well with the C++
 Standard Library. One goal is to establish "existing practice" and
 provide reference implementations so that the Boost libraries are
 suitable for eventual standardization. Some of the libraries have
 already been proposed for inclusion in the C++ Standards Committee's
 upcoming C++ Standard Library Technical Report.
 .
 This metapackage provides the complete Boost development environment,
 including all separately-packaged libraries.
Original-Maintainer: Debian Boost Team <team+boost@tracker.debian.org>
Homepage: https://www.boost.org/

Compiler version:

> clang++-21 --version
Ubuntu clang version 21.0.0 (++20250501084208+9b1051281e43-1~exp1~20250501084221.26)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-21/bin

stdexec is obtained using CPM:

CPMAddPackage(
  NAME stdexec
  GITHUB_REPOSITORY NVIDIA/stdexec
  GIT_TAG 35a3e31590e736fbb7dd55324b3a7f991a059ce3
  OPTIONS
    "STDEXEC_BUILD_EXAMPLES OFF"
    "STDEXEC_ENABLE_ASIO ON"
)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions