boost: Package Revision - Remove unneded patches
authorCarlos Miguel Ferreira <carlosmf.pt@gmail.com>
Wed, 19 Aug 2020 11:12:15 +0000 (12:12 +0100)
committerCarlos Miguel Ferreira <carlosmf.pt@gmail.com>
Wed, 19 Aug 2020 11:12:15 +0000 (12:12 +0100)
This commit removes patches which are no longer needed

Signed-off-by: Carlos Miguel Ferreira <carlosmf.pt@gmail.com>
libs/boost/patches/002-outcome-assert.patch [deleted file]
libs/boost/patches/003-beast-coroutines.patch [deleted file]

diff --git a/libs/boost/patches/002-outcome-assert.patch b/libs/boost/patches/002-outcome-assert.patch
deleted file mode 100644 (file)
index aa996fd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/boost/outcome/experimental/status-code/status_code_ptr.hpp     2020-04-28 09:23:14.792565200 +0100
-+++ b/boost/outcome/experimental/status-code/status_code_ptr.hpp     2020-04-28 09:24:34.311741000 +0100
-@@ -103,7 +103,7 @@
- #endif
-     virtual void _do_erased_copy(status_code<void> &dst, const status_code<void> &src, size_t /*unused*/) const override  // NOLINT
-     {
--      assert(dst.domain() == *this);
-+      // Note that dst will not have its domain set
-       assert(src.domain() == *this);
-       auto &d = static_cast<_mycode &>(dst);               // NOLINT
-       const auto &_s = static_cast<const _mycode &>(src);  // NOLINT
diff --git a/libs/boost/patches/003-beast-coroutines.patch b/libs/boost/patches/003-beast-coroutines.patch
deleted file mode 100644 (file)
index 58ea503..0000000
+++ /dev/null
@@ -1,1465 +0,0 @@
---- a/boost/beast/core/detail/impl/read.hpp    2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/core/detail/impl/read.hpp    2020-05-02 13:50:11.141761700 -0400
-@@ -214,7 +214,7 @@
-     class AsyncReadStream,
-     class DynamicBuffer,
-     class CompletionCondition,
--    class ReadHandler,
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler,
-     class>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- async_read(
-diff -aruN a/boost/beast/core/detail/is_invocable.hpp b/boost/beast/core/detail/is_invocable.hpp
---- a/boost/beast/core/detail/is_invocable.hpp 2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/core/detail/is_invocable.hpp 2020-05-02 13:50:11.141761700 -0400
-@@ -10,6 +10,8 @@
- #ifndef BOOST_BEAST_DETAIL_IS_INVOCABLE_HPP
- #define BOOST_BEAST_DETAIL_IS_INVOCABLE_HPP
-+#include <boost/asio/async_result.hpp>
-+#include <boost/type_traits/make_void.hpp>
- #include <type_traits>
- #include <utility>
-@@ -51,6 +53,26 @@
- };
- /** @} */
-+template<class CompletionToken, class Signature, class = void>
-+struct is_completion_token_for : std::false_type
-+{
-+};
-+
-+struct any_initiation
-+{
-+    template<class...AnyArgs>
-+    void operator()(AnyArgs&&...);
-+};
-+
-+template<class CompletionToken, class R, class...Args>
-+struct is_completion_token_for<
-+    CompletionToken, R(Args...), boost::void_t<decltype(
-+        boost::asio::async_initiate<CompletionToken, R(Args...)>(
-+            any_initiation(), std::declval<CompletionToken&>())
-+        )>> : std::true_type
-+{
-+};
-+
- } // detail
- } // beast
- } // boost
-diff -aruN a/boost/beast/core/detail/read.hpp b/boost/beast/core/detail/read.hpp
---- a/boost/beast/core/detail/read.hpp 2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/core/detail/read.hpp 2020-05-02 13:50:11.142761711 -0400
-@@ -219,7 +219,7 @@
-     class AsyncReadStream,
-     class DynamicBuffer,
-     class CompletionCondition,
--    class ReadHandler
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler
- #if ! BOOST_BEAST_DOXYGEN
-     , class = typename std::enable_if<
-         is_async_read_stream<AsyncReadStream>::value &&
-diff -aruN a/boost/beast/core/detect_ssl.hpp b/boost/beast/core/detect_ssl.hpp
---- a/boost/beast/core/detect_ssl.hpp  2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/core/detect_ssl.hpp  2020-05-02 13:50:11.143761722 -0400
-@@ -374,13 +374,13 @@
-     void operator()(
-         DetectHandler&& h,
-         AsyncReadStream* s, // references are passed as pointers
--        DynamicBuffer& b)
-+        DynamicBuffer* b)
-     {
-         detect_ssl_op<
-             typename std::decay<DetectHandler>::type,
-             AsyncReadStream,
-             DynamicBuffer>(
--                std::forward<DetectHandler>(h), *s, b);
-+                std::forward<DetectHandler>(h), *s, *b);
-     }
- };
-@@ -439,7 +439,7 @@
-             detail::run_detect_ssl_op{},
-             token,
-             &stream, // pass the reference by pointer
--            buffer);
-+            &buffer);
- }
- //]
-diff -aruN a/boost/beast/core/impl/basic_stream.hpp b/boost/beast/core/impl/basic_stream.hpp
---- a/boost/beast/core/impl/basic_stream.hpp   2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/core/impl/basic_stream.hpp   2020-05-02 13:50:11.144761733 -0400
-@@ -776,7 +776,7 @@
- //------------------------------------------------------------------------------
- template<class Protocol, class Executor, class RatePolicy>
--template<class ConnectHandler>
-+template<BOOST_BEAST_ASYNC_TPARAM1 ConnectHandler>
- BOOST_BEAST_ASYNC_RESULT1(ConnectHandler)
- basic_stream<Protocol, Executor, RatePolicy>::
- async_connect(
-@@ -795,7 +795,7 @@
- template<class Protocol, class Executor, class RatePolicy>
- template<
-     class EndpointSequence,
--    class RangeConnectHandler,
-+    BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler,
-     class>
- BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void(error_code, typename Protocol::endpoint))
- basic_stream<Protocol, Executor, RatePolicy>::
-@@ -817,7 +817,7 @@
- template<
-     class EndpointSequence,
-     class ConnectCondition,
--    class RangeConnectHandler,
-+    BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler,
-     class>
- BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void (error_code, typename Protocol::endpoint))
- basic_stream<Protocol, Executor, RatePolicy>::
-@@ -839,7 +839,7 @@
- template<class Protocol, class Executor, class RatePolicy>
- template<
-     class Iterator,
--    class IteratorConnectHandler>
-+    BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler>
- BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator))
- basic_stream<Protocol, Executor, RatePolicy>::
- async_connect(
-@@ -860,7 +860,7 @@
- template<
-     class Iterator,
-     class ConnectCondition,
--    class IteratorConnectHandler>
-+    BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler>
- BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator))
- basic_stream<Protocol, Executor, RatePolicy>::
- async_connect(
-@@ -881,7 +881,7 @@
- //------------------------------------------------------------------------------
- template<class Protocol, class Executor, class RatePolicy>
--template<class MutableBufferSequence, class ReadHandler>
-+template<class MutableBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- basic_stream<Protocol, Executor, RatePolicy>::
- async_read_some(
-@@ -901,7 +901,7 @@
- }
- template<class Protocol, class Executor, class RatePolicy>
--template<class ConstBufferSequence, class WriteHandler>
-+template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- basic_stream<Protocol, Executor, RatePolicy>::
- async_write_some(
-diff -aruN a/boost/beast/core/impl/buffered_read_stream.hpp b/boost/beast/core/impl/buffered_read_stream.hpp
---- a/boost/beast/core/impl/buffered_read_stream.hpp   2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/core/impl/buffered_read_stream.hpp   2020-05-02 13:50:11.144761733 -0400
-@@ -110,7 +110,7 @@
-     operator()(
-         ReadHandler&& h,
-         buffered_read_stream* s,
--        Buffers const& b)
-+        Buffers const* b)
-     {
-         // If you get an error on the following line it means
-         // that your handler does not meet the documented type
-@@ -124,7 +124,7 @@
-         read_op<
-             Buffers,
-             typename std::decay<ReadHandler>::type>(
--                std::forward<ReadHandler>(h), *s, b);
-+                std::forward<ReadHandler>(h), *s, *b);
-     }
- };
-@@ -141,7 +141,7 @@
- }
- template<class Stream, class DynamicBuffer>
--template<class ConstBufferSequence, class WriteHandler>
-+template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- buffered_read_stream<Stream, DynamicBuffer>::
- async_write_some(
-@@ -153,7 +153,7 @@
-     static_assert(net::is_const_buffer_sequence<
-         ConstBufferSequence>::value,
-             "ConstBufferSequence type requirements not met");
--    static_assert(detail::is_invocable<WriteHandler,
-+    static_assert(detail::is_completion_token_for<WriteHandler,
-         void(error_code, std::size_t)>::value,
-             "WriteHandler type requirements not met");
-     return next_layer_.async_write_some(buffers,
-@@ -212,7 +212,7 @@
- }
- template<class Stream, class DynamicBuffer>
--template<class MutableBufferSequence, class ReadHandler>
-+template<class MutableBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- buffered_read_stream<Stream, DynamicBuffer>::
- async_read_some(
-@@ -233,7 +233,7 @@
-             typename ops::run_read_op{},
-             handler,
-             this,
--            buffers);
-+            &buffers);
- }
- } // beast
-diff -aruN a/boost/beast/core/impl/flat_stream.hpp b/boost/beast/core/impl/flat_stream.hpp
---- a/boost/beast/core/impl/flat_stream.hpp    2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/core/impl/flat_stream.hpp    2020-05-02 13:50:11.145761743 -0400
-@@ -144,7 +144,7 @@
- template<class NextLayer>
- template<
-     class MutableBufferSequence,
--    class ReadHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- flat_stream<NextLayer>::
- async_read_some(
-@@ -225,7 +225,7 @@
- template<class NextLayer>
- template<
-     class ConstBufferSequence,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- flat_stream<NextLayer>::
- async_write_some(
-diff -aruN a/boost/beast/_experimental/http/impl/icy_stream.hpp b/boost/beast/_experimental/http/impl/icy_stream.hpp
---- a/boost/beast/_experimental/http/impl/icy_stream.hpp       2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/_experimental/http/impl/icy_stream.hpp       2020-05-02 13:50:11.146761754 -0400
-@@ -259,7 +259,7 @@
- template<class NextLayer>
- template<
-     class MutableBufferSequence,
--    class ReadHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- icy_stream<NextLayer>::
- async_read_some(
-@@ -311,7 +311,7 @@
- template<class NextLayer>
- template<
-     class MutableBufferSequence,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- icy_stream<NextLayer>::
- async_write_some(
-diff -aruN a/boost/beast/_experimental/test/impl/stream.hpp b/boost/beast/_experimental/test/impl/stream.hpp
---- a/boost/beast/_experimental/test/impl/stream.hpp   2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/_experimental/test/impl/stream.hpp   2020-05-02 13:50:11.147761765 -0400
-@@ -306,7 +306,7 @@
-     return 0;
- }
--template<class MutableBufferSequence, class ReadHandler>
-+template<class MutableBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- stream::
- async_read_some(
-@@ -386,7 +386,7 @@
-     return n;
- }
--template<class ConstBufferSequence, class WriteHandler>
-+template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- stream::
- async_write_some(
-diff -aruN a/boost/beast/http/field.hpp b/boost/beast/http/field.hpp
---- a/boost/beast/http/field.hpp       2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/http/field.hpp       2020-05-02 13:50:11.149761786 -0400
-@@ -396,12 +396,9 @@
- string_to_field(string_view s);
- /// Write the text for a field name to an output stream.
--inline
-+BOOST_BEAST_DECL
- std::ostream&
--operator<<(std::ostream& os, field f)
--{
--    return os << to_string(f);
--}
-+operator<<(std::ostream& os, field f);
- } // http
- } // beast
-diff -aruN a/boost/beast/http/impl/field.ipp b/boost/beast/http/impl/field.ipp
---- a/boost/beast/http/impl/field.ipp  2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/http/impl/field.ipp  2020-05-02 13:50:11.150761798 -0400
-@@ -11,10 +11,12 @@
- #define BOOST_BEAST_HTTP_IMPL_FIELD_IPP
- #include <boost/beast/http/field.hpp>
-+#include <boost/assert.hpp>
- #include <algorithm>
- #include <array>
- #include <cstring>
--#include <boost/assert.hpp>
-+#include <ostream>
-+
- namespace boost {
- namespace beast {
-@@ -565,6 +567,12 @@
-     return detail::get_field_table().string_to_field(s);
- }
-+std::ostream&
-+operator<<(std::ostream& os, field f)
-+{
-+    return os << to_string(f);
-+}
-+
- } // http
- } // beast
- } // boost
-diff -aruN a/boost/beast/http/impl/file_body_win32.hpp b/boost/beast/http/impl/file_body_win32.hpp
---- a/boost/beast/http/impl/file_body_win32.hpp        2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/http/impl/file_body_win32.hpp        2020-05-02 13:50:11.150761798 -0400
-@@ -597,7 +597,7 @@
- template<
-     class Protocol, class Executor,
-     bool isRequest, class Fields,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- async_write_some(
-     net::basic_stream_socket<
-diff -aruN a/boost/beast/http/impl/read.hpp b/boost/beast/http/impl/read.hpp
---- a/boost/beast/http/impl/read.hpp   2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/http/impl/read.hpp   2020-05-02 13:50:11.150761798 -0400
-@@ -304,7 +304,7 @@
-     class AsyncReadStream,
-     class DynamicBuffer,
-     bool isRequest,
--    class ReadHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- async_read_some(
-     AsyncReadStream& stream,
-@@ -373,7 +373,7 @@
-     class AsyncReadStream,
-     class DynamicBuffer,
-     bool isRequest,
--    class ReadHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- async_read_header(
-     AsyncReadStream& stream,
-@@ -443,7 +443,7 @@
-     class AsyncReadStream,
-     class DynamicBuffer,
-     bool isRequest,
--    class ReadHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- async_read(
-     AsyncReadStream& stream,
-@@ -531,7 +531,7 @@
-     class AsyncReadStream,
-     class DynamicBuffer,
-     bool isRequest, class Body, class Allocator,
--    class ReadHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- async_read(
-     AsyncReadStream& stream,
-diff -aruN a/boost/beast/http/impl/write.hpp b/boost/beast/http/impl/write.hpp
---- a/boost/beast/http/impl/write.hpp  2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/http/impl/write.hpp  2020-05-02 13:50:11.150761798 -0400
-@@ -463,7 +463,7 @@
- template<
-     class AsyncWriteStream,
-     bool isRequest, class Body, class Fields,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- async_write_some_impl(
-     AsyncWriteStream& stream,
-@@ -526,7 +526,7 @@
- template<
-     class AsyncWriteStream,
-     bool isRequest, class Body, class Fields,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- async_write_some(
-     AsyncWriteStream& stream,
-@@ -608,7 +608,7 @@
- template<
-     class AsyncWriteStream,
-     bool isRequest, class Body, class Fields,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- async_write_header(
-     AsyncWriteStream& stream,
-@@ -681,7 +681,7 @@
- template<
-     class AsyncWriteStream,
-     bool isRequest, class Body, class Fields,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- async_write(
-     AsyncWriteStream& stream,
-@@ -801,7 +801,7 @@
- template<
-     class AsyncWriteStream,
-     bool isRequest, class Body, class Fields,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- async_write(
-     AsyncWriteStream& stream,
-@@ -830,7 +830,7 @@
- template<
-     class AsyncWriteStream,
-     bool isRequest, class Body, class Fields,
--    class WriteHandler>
-+    BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- async_write(
-     AsyncWriteStream& stream,
-diff -aruN a/boost/beast/http/span_body.hpp b/boost/beast/http/span_body.hpp
---- a/boost/beast/http/span_body.hpp   2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/http/span_body.hpp   2020-05-02 13:50:11.151761808 -0400
-@@ -36,8 +36,10 @@
- struct span_body
- {
- private:
--    static_assert(std::is_pod<T>::value,
--        "POD requirements not met");
-+    static_assert(
-+        std::is_trivial<T>::value &&
-+        std::is_standard_layout<T>::value,
-+            "POD requirements not met");
- public:
-     /** The type of container used for the body
-diff -aruN a/boost/beast/ssl/ssl_stream.hpp b/boost/beast/ssl/ssl_stream.hpp
---- a/boost/beast/ssl/ssl_stream.hpp   2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/ssl/ssl_stream.hpp   2020-05-02 13:50:11.151761808 -0400
-@@ -555,7 +555,7 @@
-         need to ensure that all data is written before the asynchronous operation
-         completes.
-     */
--    template<class ConstBufferSequence, class WriteHandler>
-+    template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
-     BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t))
-     async_write_some(ConstBufferSequence const& buffers,
-         BOOST_ASIO_MOVE_ARG(WriteHandler) handler)
-@@ -636,7 +636,7 @@
-         if you need to ensure that the requested amount of data is read before
-         the asynchronous operation completes.
-     */
--    template<class MutableBufferSequence, class ReadHandler>
-+    template<class MutableBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
-     BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, void(boost::system::error_code, std::size_t))
-     async_read_some(MutableBufferSequence const& buffers,
-         BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
-diff -aruN a/boost/beast/version.hpp b/boost/beast/version.hpp
---- a/boost/beast/version.hpp  2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/version.hpp  2020-05-02 13:50:11.151761808 -0400
-@@ -20,7 +20,7 @@
-     This is a simple integer that is incremented by one every
-     time a set of code changes is merged to the develop branch.
- */
--#define BOOST_BEAST_VERSION 290
-+#define BOOST_BEAST_VERSION 292
- #define BOOST_BEAST_VERSION_STRING "Boost.Beast/" BOOST_STRINGIZE(BOOST_BEAST_VERSION)
-diff -aruN a/boost/beast/websocket/impl/accept.hpp b/boost/beast/websocket/impl/accept.hpp
---- a/boost/beast/websocket/impl/accept.hpp    2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/websocket/impl/accept.hpp    2020-05-02 13:50:11.153761830 -0400
-@@ -542,7 +542,7 @@
- template<class NextLayer, bool deflateSupported>
- template<
--    class AcceptHandler>
-+    BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
- BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
- stream<NextLayer, deflateSupported>::
- async_accept(
-@@ -564,7 +564,7 @@
- template<class NextLayer, bool deflateSupported>
- template<
-     class ResponseDecorator,
--    class AcceptHandler>
-+    BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
- BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
- stream<NextLayer, deflateSupported>::
- async_accept_ex(
-@@ -590,7 +590,7 @@
- template<class NextLayer, bool deflateSupported>
- template<
-     class ConstBufferSequence,
--    class AcceptHandler>
-+    BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
- BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
- stream<NextLayer, deflateSupported>::
- async_accept(
-@@ -621,7 +621,7 @@
- template<
-     class ConstBufferSequence,
-     class ResponseDecorator,
--    class AcceptHandler>
-+    BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
- BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
- stream<NextLayer, deflateSupported>::
- async_accept_ex(
-@@ -654,7 +654,7 @@
- template<class NextLayer, bool deflateSupported>
- template<
-     class Body, class Allocator,
--    class AcceptHandler>
-+    BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
- BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
- stream<NextLayer, deflateSupported>::
- async_accept(
-@@ -678,7 +678,7 @@
- template<
-     class Body, class Allocator,
-     class ResponseDecorator,
--    class AcceptHandler>
-+    BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
- BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
- stream<NextLayer, deflateSupported>::
- async_accept_ex(
-diff -aruN a/boost/beast/websocket/impl/close.hpp b/boost/beast/websocket/impl/close.hpp
---- a/boost/beast/websocket/impl/close.hpp     2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/websocket/impl/close.hpp     2020-05-02 13:50:11.153761830 -0400
-@@ -382,7 +382,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class CloseHandler>
-+template<BOOST_BEAST_ASYNC_TPARAM1 CloseHandler>
- BOOST_BEAST_ASYNC_RESULT1(CloseHandler)
- stream<NextLayer, deflateSupported>::
- async_close(close_reason const& cr, CloseHandler&& handler)
-diff -aruN a/boost/beast/websocket/impl/handshake.hpp b/boost/beast/websocket/impl/handshake.hpp
---- a/boost/beast/websocket/impl/handshake.hpp 2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/websocket/impl/handshake.hpp 2020-05-02 13:50:11.153761830 -0400
-@@ -268,7 +268,7 @@
- //------------------------------------------------------------------------------
- template<class NextLayer, bool deflateSupported>
--template<class HandshakeHandler>
-+template<BOOST_BEAST_ASYNC_TPARAM1 HandshakeHandler>
- BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler)
- stream<NextLayer, deflateSupported>::
- async_handshake(
-@@ -293,7 +293,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class HandshakeHandler>
-+template<BOOST_BEAST_ASYNC_TPARAM1 HandshakeHandler>
- BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler)
- stream<NextLayer, deflateSupported>::
- async_handshake(
-diff -aruN a/boost/beast/websocket/impl/ping.hpp b/boost/beast/websocket/impl/ping.hpp
---- a/boost/beast/websocket/impl/ping.hpp      2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/websocket/impl/ping.hpp      2020-05-02 13:50:11.153761830 -0400
-@@ -288,7 +288,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class WriteHandler>
-+template<BOOST_BEAST_ASYNC_TPARAM1 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT1(WriteHandler)
- stream<NextLayer, deflateSupported>::
- async_ping(ping_data const& payload, WriteHandler&& handler)
-@@ -306,7 +306,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class WriteHandler>
-+template<BOOST_BEAST_ASYNC_TPARAM1 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT1(WriteHandler)
- stream<NextLayer, deflateSupported>::
- async_pong(ping_data const& payload, WriteHandler&& handler)
-diff -aruN a/boost/beast/websocket/impl/read.hpp b/boost/beast/websocket/impl/read.hpp
---- a/boost/beast/websocket/impl/read.hpp      2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/websocket/impl/read.hpp      2020-05-02 13:50:11.153761830 -0400
-@@ -804,7 +804,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class DynamicBuffer, class ReadHandler>
-+template<class DynamicBuffer, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- stream<NextLayer, deflateSupported>::
- async_read(DynamicBuffer& buffer, ReadHandler&& handler)
-@@ -878,7 +878,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class DynamicBuffer, class ReadHandler>
-+template<class DynamicBuffer, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- stream<NextLayer, deflateSupported>::
- async_read_some(
-@@ -1263,7 +1263,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class MutableBufferSequence, class ReadHandler>
-+template<class MutableBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
- BOOST_BEAST_ASYNC_RESULT2(ReadHandler)
- stream<NextLayer, deflateSupported>::
- async_read_some(
-diff -aruN a/boost/beast/websocket/impl/write.hpp b/boost/beast/websocket/impl/write.hpp
---- a/boost/beast/websocket/impl/write.hpp     2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/websocket/impl/write.hpp     2020-05-02 13:50:11.153761830 -0400
-@@ -700,7 +700,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class ConstBufferSequence, class WriteHandler>
-+template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- stream<NextLayer, deflateSupported>::
- async_write_some(bool fin,
-@@ -756,7 +756,7 @@
- }
- template<class NextLayer, bool deflateSupported>
--template<class ConstBufferSequence, class WriteHandler>
-+template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
- BOOST_BEAST_ASYNC_RESULT2(WriteHandler)
- stream<NextLayer, deflateSupported>::
- async_write(
-diff -aruN a/boost/beast/websocket/stream.hpp b/boost/beast/websocket/stream.hpp
---- a/boost/beast/websocket/stream.hpp 2020-04-22 09:34:50.000000000 -0400
-+++ b/boost/beast/websocket/stream.hpp 2020-05-02 13:50:11.154761841 -0400
-@@ -2634,7 +2634,7 @@
-     template<
-         class ResponseDecorator,
--        class AcceptHandler>
-+        BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
-     BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
-     async_accept_ex(
-         ResponseDecorator const& decorator,
-@@ -2643,7 +2643,7 @@
-     template<
-         class ConstBufferSequence,
-         class ResponseDecorator,
--        class AcceptHandler>
-+            BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
-     BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
-     async_accept_ex(
-         ConstBufferSequence const& buffers,
-@@ -2656,7 +2656,7 @@
-     template<
-         class Body, class Allocator,
-         class ResponseDecorator,
--        class AcceptHandler>
-+            BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler>
-     BOOST_BEAST_ASYNC_RESULT1(AcceptHandler)
-     async_accept_ex(
-         http::request<Body,
-diff -aruN a/libs/beast/CHANGELOG.md b/libs/beast/CHANGELOG.md
---- a/libs/beast/CHANGELOG.md  2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/CHANGELOG.md  2020-05-02 13:51:02.388315008 -0400
-@@ -1,3 +1,25 @@
-+Version 292:
-+
-+* Fix compile errors on Visual Studio with /std:c++latest
-+* Fix standalone compilation error with std::string_view 
-+* OpenSSL 1.0.2 or later is required
-+* Fix c++20 deprecation warning in span_body
-+
-+--------------------------------------------------------------------------------
-+
-+Version 291:
-+
-+* Test websocket with use_awaitable
-+* Test http write with use_awaitable
-+* Test http read with use_awaitable
-+* Fix use buffered_read_stream with use_awaitable
-+* Implement is_completion_token_for trait
-+* Test use_awaitable with basic_stream
-+* Fix async_detect_ssl with use_awaitable
-+* Add clang coroutines-ts to circleci config
-+
-+--------------------------------------------------------------------------------
-+
- Version 290:
- * Travis build host now bionic
-diff -aruN a/libs/beast/CMakeLists.txt b/libs/beast/CMakeLists.txt
---- a/libs/beast/CMakeLists.txt        2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/CMakeLists.txt        2020-05-02 13:51:02.389315019 -0400
-@@ -40,7 +40,7 @@
- #
- #-------------------------------------------------------------------------------
--project (Beast VERSION 290)
-+project (Beast VERSION 292)
- set_property (GLOBAL PROPERTY USE_FOLDERS ON)
- option (Beast_BUILD_EXAMPLES "Build examples" ON)
-diff -aruN a/libs/beast/doc/qbk/01_intro/_intro.qbk b/libs/beast/doc/qbk/01_intro/_intro.qbk
---- a/libs/beast/doc/qbk/01_intro/_intro.qbk   2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/doc/qbk/01_intro/_intro.qbk   2020-05-02 13:51:02.391315040 -0400
-@@ -58,7 +58,7 @@
- * [*C++11:] Robust support for most language features.
- * [*Boost:] Beast only works with Boost, not stand-alone Asio
--* [*OpenSSL:] Required to build the tests, examples, and to use TLS/Secure sockets.
-+* [*OpenSSL:] Version 1.0.2 or higher. Required to build the tests, examples, and to use TLS/Secure sockets.
- Tested with these compilers: msvc-14+, gcc 4.8.4+, clang 3.6+.
-diff -aruN a/libs/beast/test/beast/core/async_base.cpp b/libs/beast/test/beast/core/async_base.cpp
---- a/libs/beast/test/beast/core/async_base.cpp        2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/core/async_base.cpp        2020-05-02 13:51:02.470315892 -0400
-@@ -585,7 +585,7 @@
-     //--------------------------------------------------------------------------
-     // Asynchronously read into a buffer until the buffer is full, or an error occurs
--    template<class AsyncReadStream, class ReadHandler>
-+    template<class AsyncReadStream, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
-     typename net::async_result<ReadHandler, void(error_code, std::size_t)>::return_type
-     async_read(AsyncReadStream& stream, net::mutable_buffer buffer, ReadHandler&& handler)
-     {
-diff -aruN a/libs/beast/test/beast/core/basic_stream.cpp b/libs/beast/test/beast/core/basic_stream.cpp
---- a/libs/beast/test/beast/core/basic_stream.cpp      2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/core/basic_stream.cpp      2020-05-02 13:51:02.470315892 -0400
-@@ -30,6 +30,13 @@
- #include <array>
- #include <thread>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/awaitable.hpp>
-+#include <boost/asio/co_spawn.hpp>
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
-+
-+
- namespace boost {
- namespace beast {
-@@ -258,7 +265,7 @@
-     {
-         string_view s_;
-         net::ip::tcp::socket socket_;
--        
-+
-     public:
-         session(
-             string_view s,
-@@ -1297,6 +1304,52 @@
-     //--------------------------------------------------------------------------
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompilation(
-+        basic_stream<net::ip::tcp>& stream,
-+        net::mutable_buffer outbuf,
-+        net::const_buffer inbuf,
-+        net::ip::tcp::resolver::results_type resolve_results)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+                stream.async_read_some(outbuf, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+                stream.async_write_some(inbuf, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<net::ip::tcp::resolver::results_type::const_iterator>, decltype(
-+                stream.async_connect(
-+                    resolve_results.begin(),
-+                    resolve_results.end(),
-+                    net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<net::ip::tcp::endpoint>, decltype(
-+            stream.async_connect(
-+                resolve_results,
-+                net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            stream.async_connect(
-+                resolve_results.begin()->endpoint(),
-+                net::use_awaitable))>);
-+
-+        auto comparison_function = [](error_code&, net::ip::tcp::endpoint) { return true; };
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<net::ip::tcp::resolver::results_type::const_iterator>, decltype(
-+            stream.async_connect(
-+                resolve_results.begin(),
-+                resolve_results.end(),
-+                comparison_function,
-+                net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run()
-     {
-@@ -1307,6 +1360,11 @@
-         testMembers();
-         testJavadocs();
-         testIssue1589();
-+
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        // test for compilation success only
-+        boost::ignore_unused(&basic_stream_test::testAwaitableCompilation);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/core/buffered_read_stream.cpp b/libs/beast/test/beast/core/buffered_read_stream.cpp
---- a/libs/beast/test/beast/core/buffered_read_stream.cpp      2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/core/buffered_read_stream.cpp      2020-05-02 13:51:02.470315892 -0400
-@@ -21,6 +21,9 @@
- #include <boost/asio/spawn.hpp>
- #include <boost/asio/strand.hpp>
- #include <boost/optional.hpp>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
-@@ -211,6 +214,22 @@
-         }
-     };
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        buffered_read_stream<test::stream, flat_buffer>& stream,
-+        net::mutable_buffer rxbuf,
-+        net::const_buffer txbuf)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            stream.async_read_some(rxbuf, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            stream.async_write_some(txbuf, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void run() override
-     {
-         testSpecialMembers();
-@@ -221,6 +240,10 @@
-         });
-         testAsyncLoop();
-+
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&buffered_read_stream_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/core/detect_ssl.cpp b/libs/beast/test/beast/core/detect_ssl.cpp
---- a/libs/beast/test/beast/core/detect_ssl.cpp        2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/core/detect_ssl.cpp        2020-05-02 13:51:02.470315892 -0400
-@@ -16,6 +16,11 @@
- #include <boost/beast/core/flat_buffer.hpp>
- #include <boost/beast/core/string.hpp>
- #include <boost/core/exchange.hpp>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/awaitable.hpp>
-+#include <boost/asio/co_spawn.hpp>
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
-@@ -166,12 +171,25 @@
-         }
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(test::stream& stream, flat_buffer& b)
-+    {
-+        static_assert(
-+            std::is_same_v<
-+                net::awaitable<bool>, decltype(
-+                async_detect_ssl(stream, b, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-         testDetect();
-         testRead();
-         testAsyncRead();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&detect_ssl_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/core/flat_stream.cpp b/libs/beast/test/beast/core/flat_stream.cpp
---- a/libs/beast/test/beast/core/flat_stream.cpp       2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/core/flat_stream.cpp       2020-05-02 13:51:02.471315902 -0400
-@@ -17,6 +17,9 @@
- #include <boost/beast/core/role.hpp>
- #include <initializer_list>
- #include <vector>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
-@@ -208,11 +211,30 @@
-         check({1,2,3,4},    3,    3, true);
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        flat_stream<test::stream>& stream,
-+        net::mutable_buffer rxbuf,
-+        net::const_buffer txbuf)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            stream.async_read_some(rxbuf, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            stream.async_write_some(txbuf, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-         testMembers();
-         testSplit();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    boost::ignore_unused(&flat_stream_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/core/stream_traits.cpp b/libs/beast/test/beast/core/stream_traits.cpp
---- a/libs/beast/test/beast/core/stream_traits.cpp     2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/core/stream_traits.cpp     2020-05-02 13:51:02.471315902 -0400
-@@ -214,14 +214,14 @@
-     struct async_read_stream
-     {
-         net::io_context::executor_type get_executor() noexcept;
--        template<class MutableBufferSequence, class ReadHandler>
-+        template<class MutableBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
-         void async_read_some(MutableBufferSequence const&, ReadHandler&&);
-     };
-     struct async_write_stream
-     {
-         net::io_context::executor_type get_executor() noexcept;
--        template<class ConstBufferSequence, class WriteHandler>
-+        template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
-         void async_write_some(ConstBufferSequence const&, WriteHandler&&);
-     };
-@@ -232,9 +232,9 @@
-     struct async_stream : async_read_stream, async_write_stream
-     {
-         net::io_context::executor_type get_executor() noexcept;
--        template<class MutableBufferSequence, class ReadHandler>
-+        template<class MutableBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 ReadHandler>
-         void async_read_some(MutableBufferSequence const&, ReadHandler&&);
--        template<class ConstBufferSequence, class WriteHandler>
-+        template<class ConstBufferSequence, BOOST_BEAST_ASYNC_TPARAM2 WriteHandler>
-         void async_write_some(ConstBufferSequence const&, WriteHandler&&);
-     };
-diff -aruN a/libs/beast/test/beast/http/CMakeLists.txt b/libs/beast/test/beast/http/CMakeLists.txt
---- a/libs/beast/test/beast/http/CMakeLists.txt        2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/http/CMakeLists.txt        2020-05-02 13:51:02.472315914 -0400
-@@ -26,6 +26,7 @@
-     empty_body.cpp
-     error.cpp
-     field.cpp
-+    field_compiles.cpp
-     fields.cpp
-     file_body.cpp
-     message.cpp
-diff -aruN a/libs/beast/test/beast/http/field_compiles.cpp b/libs/beast/test/beast/http/field_compiles.cpp
---- a/libs/beast/test/beast/http/field_compiles.cpp    1969-12-31 19:00:00.000000000 -0500
-+++ b/libs/beast/test/beast/http/field_compiles.cpp    2020-05-02 13:51:02.473315924 -0400
-@@ -0,0 +1,11 @@
-+//
-+// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
-+//
-+// Distributed under the Boost Software License, Version 1.0. (See accompanying
-+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-+//
-+// Official repository: https://github.com/boostorg/beast
-+//
-+
-+// Test that header file is self-contained.
-+#include <boost/beast/http/field.hpp>
-diff -aruN a/libs/beast/test/beast/http/Jamfile b/libs/beast/test/beast/http/Jamfile
---- a/libs/beast/test/beast/http/Jamfile       2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/http/Jamfile       2020-05-02 13:51:02.472315914 -0400
-@@ -16,6 +16,7 @@
-     dynamic_body.cpp
-     error.cpp
-     field.cpp
-+    field_compiles.cpp
-     fields.cpp
-     file_body.cpp
-     message.cpp
-diff -aruN a/libs/beast/test/beast/http/read.cpp b/libs/beast/test/beast/http/read.cpp
---- a/libs/beast/test/beast/http/read.cpp      2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/http/read.cpp      2020-05-02 13:51:02.472315914 -0400
-@@ -25,6 +25,9 @@
- #include <boost/asio/strand.hpp>
- #include <boost/asio/ip/tcp.hpp>
- #include <atomic>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
-@@ -529,6 +532,49 @@
-         }
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        test::stream& stream,
-+        flat_buffer& dynbuf,
-+        parser<true, string_body>& request_parser,
-+        request<http::string_body>& request,
-+        parser<false, string_body>& response_parser,
-+        response<http::string_body>& response)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read(stream, dynbuf, request, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read(stream, dynbuf, request_parser, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read(stream, dynbuf, response, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read(stream, dynbuf, response_parser, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read_some(stream, dynbuf, request_parser, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read_some(stream, dynbuf, response_parser, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read_header(stream, dynbuf, request_parser, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_read_header(stream, dynbuf, response_parser, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-@@ -552,6 +598,9 @@
-         testRegression430();
-         testReadGrind();
-         testAsioHandlerInvoke();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&read_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/http/write.cpp b/libs/beast/test/beast/http/write.cpp
---- a/libs/beast/test/beast/http/write.cpp     2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/http/write.cpp     2020-05-02 13:51:02.473315924 -0400
-@@ -26,6 +26,9 @@
- #include <boost/asio/strand.hpp>
- #include <sstream>
- #include <string>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
-@@ -994,6 +997,59 @@
-         }
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        test::stream& stream,
-+        serializer<true, string_body>& request_serializer,
-+        request<string_body>& req,
-+        request<string_body> const& creq,
-+        serializer<false, string_body>& response_serializer,
-+        response<string_body>& resp,
-+        response<string_body> const& cresp)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write(stream, request_serializer, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write(stream, response_serializer, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write(stream, req, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write(stream, creq, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write(stream, resp, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write(stream, cresp, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write_some(stream, request_serializer, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write_some(stream, response_serializer, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write_header(stream, request_serializer, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            http::async_write_header(stream, response_serializer, net::use_awaitable))>);
-+    }
-+#endif
-+
-+
-     void
-     run() override
-     {
-@@ -1017,6 +1073,9 @@
-             });
-         testAsioHandlerInvoke();
-         testBodyWriters();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&write_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/websocket/accept.cpp b/libs/beast/test/beast/websocket/accept.cpp
---- a/libs/beast/test/beast/websocket/accept.cpp       2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/websocket/accept.cpp       2020-05-02 13:51:02.473315924 -0400
-@@ -14,7 +14,9 @@
- #include <boost/beast/_experimental/test/tcp.hpp>
- #include <boost/beast/_experimental/unit_test/suite.hpp>
- #include "test.hpp"
--
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
- namespace websocket {
-@@ -810,6 +812,27 @@
-         }
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        stream<net::ip::tcp::socket>& s,
-+        http::request<http::empty_body>& req,
-+        net::mutable_buffer buf
-+        )
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_accept(net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_accept(req, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_accept(buf, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-@@ -820,6 +843,9 @@
-         testInvalidInputs();
-         testEndOfStream();
-         testAsync();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&accept_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/websocket/close.cpp b/libs/beast/test/beast/websocket/close.cpp
---- a/libs/beast/test/beast/websocket/close.cpp        2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/websocket/close.cpp        2020-05-02 13:51:02.473315924 -0400
-@@ -16,6 +16,9 @@
- #include <boost/asio/io_context.hpp>
- #include <boost/asio/strand.hpp>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
-@@ -735,6 +738,15 @@
-         }
-     };
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(stream<test::stream>& s, close_reason cr )
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_close(cr, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-@@ -742,6 +754,9 @@
-         testTimeout();
-         testSuspend();
-         testMoveOnly();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&close_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/websocket/handshake.cpp b/libs/beast/test/beast/websocket/handshake.cpp
---- a/libs/beast/test/beast/websocket/handshake.cpp    2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/websocket/handshake.cpp    2020-05-02 13:51:02.473315924 -0400
-@@ -18,6 +18,9 @@
- #include <boost/asio/io_context.hpp>
- #include <boost/asio/strand.hpp>
- #include <thread>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
- namespace boost {
- namespace beast {
-@@ -704,6 +707,23 @@
-         }
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        stream<test::stream>& s,
-+        std::string host,
-+        std::string port,
-+        response_type& resp)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_handshake(host, port, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_handshake(resp, host, port, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-@@ -714,6 +734,9 @@
-         testMoveOnly();
-         testAsync();
-         testIssue1460();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&handshake_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/websocket/ping.cpp b/libs/beast/test/beast/websocket/ping.cpp
---- a/libs/beast/test/beast/websocket/ping.cpp 2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/websocket/ping.cpp 2020-05-02 13:51:02.474315935 -0400
-@@ -18,6 +18,10 @@
- #include <boost/asio/io_context.hpp>
- #include <boost/asio/strand.hpp>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
-+
- namespace boost {
- namespace beast {
- namespace websocket {
-@@ -483,12 +487,30 @@
-         }
-     };
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        stream<test::stream>& s,
-+        ping_data& pdat)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_ping(pdat, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<void>, decltype(
-+            s.async_pong(pdat, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-         testPing();
-         testSuspend();
-         testMoveOnly();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&ping_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/websocket/read2.cpp b/libs/beast/test/beast/websocket/read2.cpp
---- a/libs/beast/test/beast/websocket/read2.cpp        2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/websocket/read2.cpp        2020-05-02 13:51:02.474315935 -0400
-@@ -14,6 +14,10 @@
- #include <boost/asio/write.hpp>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
-+
- #include <boost/config/workaround.hpp>
- #if BOOST_WORKAROUND(BOOST_GCC, < 80200)
- #define BOOST_BEAST_SYMBOL_HIDDEN __attribute__ ((visibility("hidden")))
-@@ -673,10 +677,34 @@
-         }
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        stream<test::stream>& s,
-+        flat_buffer& dynbuf,
-+        net::mutable_buffer buf,
-+        std::size_t limit)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            s.async_read(dynbuf, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            s.async_read_some(buf, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            s.async_read_some(dynbuf, limit, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-         testRead();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&read2_test::testAwaitableCompiles);
-+#endif
-     }
- };
-diff -aruN a/libs/beast/test/beast/websocket/write.cpp b/libs/beast/test/beast/websocket/write.cpp
---- a/libs/beast/test/beast/websocket/write.cpp        2020-04-22 09:34:50.000000000 -0400
-+++ b/libs/beast/test/beast/websocket/write.cpp        2020-05-02 13:51:02.474315935 -0400
-@@ -13,6 +13,10 @@
- #include <boost/asio/io_context.hpp>
- #include <boost/asio/strand.hpp>
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+#include <boost/asio/use_awaitable.hpp>
-+#endif
-+
- #include "test.hpp"
- namespace boost {
-@@ -716,6 +720,22 @@
-         BEAST_EXPECT(n1 < n0 + s.size());
-     }
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+    void testAwaitableCompiles(
-+        stream<test::stream>& s,
-+        net::mutable_buffer buf,
-+        bool fin)
-+    {
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            s.async_write(buf, net::use_awaitable))>);
-+
-+        static_assert(std::is_same_v<
-+            net::awaitable<std::size_t>, decltype(
-+            s.async_write_some(fin, buf, net::use_awaitable))>);
-+    }
-+#endif
-+
-     void
-     run() override
-     {
-@@ -726,6 +746,9 @@
-         testMoveOnly();
-         testIssue300();
-         testIssue1666();
-+#if BOOST_ASIO_HAS_CO_AWAIT
-+        boost::ignore_unused(&write_test::testAwaitableCompiles);
-+#endif
-     }
- };