
Hi I have been experimenting with some C++20 concepts code. Currently, I have a program which uses beast and asio to do some network file transfers. I was thinking of adding a small piece of code to my code which includes a concept. Prior to doing this, I tried building the beast tests from the 1.72 version with concepts enabled in the compiler. I got lots of errors such as the one below. beast/http/write.cpp:313:44: error: use of ‘auto boost::beast::http::async_write(AsyncWriteStream&, const boost::beast::http::message<isRequest, Body, Fields>&, WriteHandler&&, typename std::enable_if<(! boost::beast::http::is_mutable_body_writer<Body>::value)>::type*) [with AsyncWriteStream = boost::beast::test::stream; bool isRequest = false; Body = boost::beast::http::basic_string_body<char>; Fields = boost::beast::http::basic_fields<std::allocator<char> >; WriteHandler = boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >; typename std::enable_if<(! boost::beast::http::is_mutable_body_writer<Body>::value)>::type = void]’ before deduction of ‘auto’ 313 | async_write(ts, m, do_yield[ec]); | ^ Are beast and asio not concepts ready? Or am I missing something? Is there some flag I need to set? My set up: boost: 1.72 gcc: 9.3 I added -std=c++2a -fconcepts to compile flags in my user-config.jam file to enable compiler concepts support. I have no problems using these compiler flags with other non-boost code. Thanks