diff --git a/include/boost/beast/core/basic_stream.hpp b/include/boost/beast/core/basic_stream.hpp index cf77da79..9c08006d 100644 --- a/include/boost/beast/core/basic_stream.hpp +++ b/include/boost/beast/core/basic_stream.hpp @@ -1026,6 +1026,10 @@ public: ,class = typename std::enable_if< net::is_endpoint_sequence< EndpointSequence>::value>::type + ,class = typename std::enable_if< + !net::is_connect_condition().begin())>::value + >::type #endif > BOOST_ASIO_INITFN_AUTO_RESULT_TYPE( @@ -1132,6 +1136,10 @@ public: ,class = typename std::enable_if< net::is_endpoint_sequence< EndpointSequence>::value>::type + ,class = typename std::enable_if< + net::is_connect_condition().begin())>::value + >::type #endif > BOOST_ASIO_INITFN_AUTO_RESULT_TYPE( @@ -1204,7 +1212,13 @@ public: BOOST_ASIO_COMPLETION_TOKEN_FOR( void(error_code, Iterator)) IteratorConnectHandler = - net::default_completion_token_t> + net::default_completion_token_t + #if ! BOOST_BEAST_DOXYGEN + ,class = typename std::enable_if< + !net::is_connect_condition::value + >::type + #endif + > BOOST_ASIO_INITFN_AUTO_RESULT_TYPE( IteratorConnectHandler, void(error_code, Iterator)) @@ -1278,7 +1292,13 @@ public: BOOST_ASIO_COMPLETION_TOKEN_FOR( void(error_code, Iterator)) IteratorConnectHandler = - net::default_completion_token_t> + net::default_completion_token_t + #if ! BOOST_BEAST_DOXYGEN + ,class = typename std::enable_if< + net::is_connect_condition::value + >::type + #endif + > BOOST_ASIO_INITFN_AUTO_RESULT_TYPE( IteratorConnectHandler, void(error_code, Iterator)) diff --git a/include/boost/beast/core/impl/basic_stream.hpp b/include/boost/beast/core/impl/basic_stream.hpp index 21bd9773..82869399 100644 --- a/include/boost/beast/core/impl/basic_stream.hpp +++ b/include/boost/beast/core/impl/basic_stream.hpp @@ -905,6 +905,7 @@ template template< class EndpointSequence, BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler, + class, class> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(RangeConnectHandler,void(error_code, typename Protocol::endpoint)) basic_stream:: @@ -927,6 +928,7 @@ template< class EndpointSequence, class ConnectCondition, BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler, + class, class> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(RangeConnectHandler,void (error_code, typename Protocol::endpoint)) basic_stream:: @@ -948,7 +950,8 @@ async_connect( template template< class Iterator, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler> + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler, + class> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator)) basic_stream:: async_connect( @@ -969,7 +972,8 @@ template template< class Iterator, class ConnectCondition, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler> + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler, + class> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator)) basic_stream:: async_connect( diff --git a/include/boost/beast/websocket/impl/accept.hpp b/include/boost/beast/websocket/impl/accept.hpp index 6cc4c88b..87e264a1 100644 --- a/include/boost/beast/websocket/impl/accept.hpp +++ b/include/boost/beast/websocket/impl/accept.hpp @@ -603,7 +603,11 @@ template< BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) stream:: async_accept( - AcceptHandler&& handler) + AcceptHandler&& handler, + typename std::enable_if< + ! net::is_const_buffer_sequence< + AcceptHandler>::value>::type* +) { static_assert(is_async_stream::value, "AsyncStream type requirements not met"); @@ -627,6 +631,9 @@ stream:: async_accept( ConstBufferSequence const& buffers, AcceptHandler&& handler, + typename std::enable_if< + net::is_const_buffer_sequence< + ConstBufferSequence>::value>::type*, typename std::enable_if< ! http::detail::is_header< ConstBufferSequence>::value>::type* diff --git a/include/boost/beast/websocket/stream.hpp b/include/boost/beast/websocket/stream.hpp index 0b9baf2b..64cab0e0 100644 --- a/include/boost/beast/websocket/stream.hpp +++ b/include/boost/beast/websocket/stream.hpp @@ -1381,7 +1381,13 @@ public: async_accept( AcceptHandler&& handler = net::default_completion_token_t< - executor_type>{}); + executor_type>{} +#ifndef BOOST_BEAST_DOXYGEN + , typename std::enable_if< + ! net::is_const_buffer_sequence< + AcceptHandler>::value>::type* = nullptr +#endif + ); /** Perform the WebSocket handshake asynchronously in the server role. @@ -1454,6 +1460,9 @@ public: net::default_completion_token_t< executor_type>{} #ifndef BOOST_BEAST_DOXYGEN + , typename std::enable_if< + net::is_const_buffer_sequence< + ConstBufferSequence>::value>::type* = 0 , typename std::enable_if< ! http::detail::is_header< ConstBufferSequence>::value>::type* = 0