From adcd4bc0c9a44ec97c89bbc428e4330ef5861725 Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Tue, 5 Feb 2019 13:02:19 -0800 Subject: [PATCH] is_completion_handler, type_traits.hpp are deprecated (API Change): * is_completion_handler is deprecated * type_traits.hpp is a deprecated include These items will be removed in the next version * Include the new header file for the types needed: - stream_traits.hpp - file_base.hpp * Use std::is_invocable instead of is_completion_handler --- CHANGELOG.md | 3 ++ doc/qbk/03_core/2_streams.qbk | 6 --- doc/qbk/quickref.xml | 1 - .../beast/_experimental/core/flat_stream.hpp | 1 - .../beast/_experimental/http/icy_stream.hpp | 2 +- .../boost/beast/_experimental/test/stream.hpp | 1 - include/boost/beast/core.hpp | 1 - .../boost/beast/core/basic_timeout_stream.hpp | 1 - include/boost/beast/core/bind_handler.hpp | 7 ---- .../boost/beast/core/buffered_read_stream.hpp | 1 - .../boost/beast/core/detail/type_traits.hpp | 4 +- .../beast/core/impl/buffered_read_stream.hpp | 4 +- include/boost/beast/core/impl/read_size.hpp | 1 + include/boost/beast/core/ostream.hpp | 1 - include/boost/beast/core/read_size.hpp | 1 - include/boost/beast/core/type_traits.hpp | 24 +++++------- .../boost/beast/http/basic_dynamic_body.hpp | 1 - .../boost/beast/http/detail/chunk_encode.hpp | 1 - .../boost/beast/http/impl/basic_parser.ipp | 1 - .../boost/beast/http/impl/file_body_win32.ipp | 1 - include/boost/beast/http/impl/write.ipp | 1 - include/boost/beast/http/serializer.hpp | 1 - include/boost/beast/http/type_traits.hpp | 1 - include/boost/beast/websocket/impl/close.hpp | 1 - .../boost/beast/websocket/impl/handshake.hpp | 1 - include/boost/beast/websocket/impl/ping.hpp | 1 - include/boost/beast/websocket/impl/read.hpp | 1 - include/boost/beast/websocket/impl/stream.hpp | 1 - .../boost/beast/websocket/impl/teardown.hpp | 4 +- include/boost/beast/websocket/impl/write.hpp | 1 - test/beast/core/CMakeLists.txt | 1 - test/beast/core/Jamfile | 1 - test/beast/core/buffer_test.hpp | 1 - test/beast/core/buffers_prefix.cpp | 1 - test/beast/core/file_posix.cpp | 1 - test/beast/core/file_stdio.cpp | 1 - test/beast/core/file_win32.cpp | 1 - test/beast/core/multi_buffer.cpp | 1 - test/beast/core/stream_traits.cpp | 1 - test/beast/core/type_traits.cpp | 39 ------------------- test/bench/parser/nodejs_parser.hpp | 1 - 41 files changed, 20 insertions(+), 105 deletions(-) delete mode 100644 test/beast/core/type_traits.cpp diff --git a/CHANGELOG.md b/CHANGELOG.md index 862b319d..2a6633d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,16 +6,19 @@ Version 210: * Add stream_traits.hpp * Add executor_type trait * Fix hexadecimal string conversion table +* is_completion_handler, type_traits.hpp are deprecated API Changes: * Stream traits are now in stream_traits.hpp * `is_file` is now in file_base.hpp +* is_completion_handler is deprecated Actions Required: * Include stream_traits.hpp as needed * Include file_base.hpp as needed +* Use std::is_invocable instead of is_completion_handler -------------------------------------------------------------------------------- diff --git a/doc/qbk/03_core/2_streams.qbk b/doc/qbk/03_core/2_streams.qbk index b208d73f..6b2683a5 100644 --- a/doc/qbk/03_core/2_streams.qbk +++ b/doc/qbk/03_core/2_streams.qbk @@ -86,12 +86,6 @@ checks helps provide more concise errors during compilation: ][ Determine if a type meets the requirements of __AsyncWriteStream__. ]] -[[ - [link beast.ref.boost__beast__is_completion_handler `is_completion_handler`] -][ - Determine if a type meets the requirements of __CompletionHandler__, - and is callable with a specified signature. -]] [[ [link beast.ref.boost__beast__is_sync_read_stream `is_sync_read_stream`] ][ diff --git a/doc/qbk/quickref.xml b/doc/qbk/quickref.xml index 9f2269b6..7e21f714 100644 --- a/doc/qbk/quickref.xml +++ b/doc/qbk/quickref.xml @@ -82,7 +82,6 @@ is_async_read_stream is_async_write_stream is_async_stream - is_completion_handler is_file is_sync_read_stream is_sync_stream diff --git a/include/boost/beast/_experimental/core/flat_stream.hpp b/include/boost/beast/_experimental/core/flat_stream.hpp index 7727fe8f..0b8f27f8 100644 --- a/include/boost/beast/_experimental/core/flat_stream.hpp +++ b/include/boost/beast/_experimental/core/flat_stream.hpp @@ -12,7 +12,6 @@ #include #include -#include #include #include #include diff --git a/include/boost/beast/_experimental/http/icy_stream.hpp b/include/boost/beast/_experimental/http/icy_stream.hpp index 37a5df19..6683dbbe 100644 --- a/include/boost/beast/_experimental/http/icy_stream.hpp +++ b/include/boost/beast/_experimental/http/icy_stream.hpp @@ -12,8 +12,8 @@ #include #include -#include #include +#include #include namespace boost { diff --git a/include/boost/beast/_experimental/test/stream.hpp b/include/boost/beast/_experimental/test/stream.hpp index d452483a..37e1a53e 100644 --- a/include/boost/beast/_experimental/test/stream.hpp +++ b/include/boost/beast/_experimental/test/stream.hpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/core.hpp b/include/boost/beast/core.hpp index 5e2ab241..4802ab7a 100644 --- a/include/boost/beast/core.hpp +++ b/include/boost/beast/core.hpp @@ -45,6 +45,5 @@ #include #include #include -#include #endif diff --git a/include/boost/beast/core/basic_timeout_stream.hpp b/include/boost/beast/core/basic_timeout_stream.hpp index 87216163..fc03141b 100644 --- a/include/boost/beast/core/basic_timeout_stream.hpp +++ b/include/boost/beast/core/basic_timeout_stream.hpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/core/bind_handler.hpp b/include/boost/beast/core/bind_handler.hpp index 2d6620b9..7701dd79 100644 --- a/include/boost/beast/core/bind_handler.hpp +++ b/include/boost/beast/core/bind_handler.hpp @@ -11,7 +11,6 @@ #define BOOST_BEAST_BIND_HANDLER_HPP #include -#include #include #include #include @@ -65,12 +64,6 @@ detail::bind_wrapper< #endif bind_handler(Handler&& handler, Args&&... args) { -#if 0 - // Can't do this because of placeholders - static_assert(is_completion_handler< - Handler, void(Args...)>::value, - "Handler requirements not met"); -#endif return detail::bind_wrapper< typename std::decay::type, typename std::decay::type...>( diff --git a/include/boost/beast/core/buffered_read_stream.hpp b/include/boost/beast/core/buffered_read_stream.hpp index 293ed920..b65c6f2e 100644 --- a/include/boost/beast/core/buffered_read_stream.hpp +++ b/include/boost/beast/core/buffered_read_stream.hpp @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/core/detail/type_traits.hpp b/include/boost/beast/core/detail/type_traits.hpp index 948b4993..e88f541f 100644 --- a/include/boost/beast/core/detail/type_traits.hpp +++ b/include/boost/beast/core/detail/type_traits.hpp @@ -133,10 +133,10 @@ struct is_contiguous_container::value, \ "CompletionHandler signature requirements not met"); \ - net::async_completion init{handler} + ::boost::beast::net::async_completion init{handler} } // detail } // beast diff --git a/include/boost/beast/core/impl/buffered_read_stream.hpp b/include/boost/beast/core/impl/buffered_read_stream.hpp index b512e204..0f50f4e3 100644 --- a/include/boost/beast/core/impl/buffered_read_stream.hpp +++ b/include/boost/beast/core/impl/buffered_read_stream.hpp @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include @@ -123,7 +123,7 @@ async_write_some( static_assert(net::is_const_buffer_sequence< ConstBufferSequence>::value, "ConstBufferSequence requirements not met"); - static_assert(is_completion_handler::value, "WriteHandler requirements not met"); return next_layer_.async_write_some(buffers, diff --git a/include/boost/beast/core/impl/read_size.hpp b/include/boost/beast/core/impl/read_size.hpp index bb015dc7..d360210b 100644 --- a/include/boost/beast/core/impl/read_size.hpp +++ b/include/boost/beast/core/impl/read_size.hpp @@ -10,6 +10,7 @@ #ifndef BOOST_BEAST_IMPL_READ_SIZE_HPP #define BOOST_BEAST_IMPL_READ_SIZE_HPP +#include #include #include #include diff --git a/include/boost/beast/core/ostream.hpp b/include/boost/beast/core/ostream.hpp index 9daabea6..852ce6eb 100644 --- a/include/boost/beast/core/ostream.hpp +++ b/include/boost/beast/core/ostream.hpp @@ -11,7 +11,6 @@ #define BOOST_BEAST_WRITE_OSTREAM_HPP #include -#include #include #include #include diff --git a/include/boost/beast/core/read_size.hpp b/include/boost/beast/core/read_size.hpp index 96324154..683d5059 100644 --- a/include/boost/beast/core/read_size.hpp +++ b/include/boost/beast/core/read_size.hpp @@ -11,7 +11,6 @@ #define BOOST_BEAST_READ_SIZE_HELPER_HPP #include -#include #include namespace boost { diff --git a/include/boost/beast/core/type_traits.hpp b/include/boost/beast/core/type_traits.hpp index a84d2879..d42123cf 100644 --- a/include/boost/beast/core/type_traits.hpp +++ b/include/boost/beast/core/type_traits.hpp @@ -10,40 +10,32 @@ #ifndef BOOST_BEAST_TYPE_TRAITS_HPP #define BOOST_BEAST_TYPE_TRAITS_HPP -#include +#ifndef BOOST_BEAST_DOXYGEN + +BOOST_PRAGMA_MESSAGE(" is DEPRECATED and will be removed in a future release.") + #include +#include #include -#include -#include -#include +#include +#include namespace boost { namespace beast { -//------------------------------------------------------------------------------ -// -// Handler concepts -// -//------------------------------------------------------------------------------ - /** Determine if `T` meets the requirements of @b CompletionHandler. - This trait checks whether a type meets the requirements for a completion handler, and is also callable with the specified signature. Metafunctions are used to perform compile time checking of template types. This type will be `std::true_type` if `T` meets the requirements, else the type will be `std::false_type`. - @par Example - Use with `static_assert`: - @code struct handler { void operator()(error_code&); }; - static_assert(is_completion_handler::value, "Not a completion handler"); @endcode @@ -61,3 +53,5 @@ using is_completion_handler = std::integral_constant #include -#include #include #include #include diff --git a/include/boost/beast/http/detail/chunk_encode.hpp b/include/boost/beast/http/detail/chunk_encode.hpp index e109bd5a..a3c95ca6 100644 --- a/include/boost/beast/http/detail/chunk_encode.hpp +++ b/include/boost/beast/http/detail/chunk_encode.hpp @@ -10,7 +10,6 @@ #ifndef BOOST_BEAST_HTTP_DETAIL_CHUNK_ENCODE_HPP #define BOOST_BEAST_HTTP_DETAIL_CHUNK_ENCODE_HPP -#include #include #include #include diff --git a/include/boost/beast/http/impl/basic_parser.ipp b/include/boost/beast/http/impl/basic_parser.ipp index bd57fcbc..9404ca77 100644 --- a/include/boost/beast/http/impl/basic_parser.ipp +++ b/include/boost/beast/http/impl/basic_parser.ipp @@ -12,7 +12,6 @@ #include #include -#include #include #include #include diff --git a/include/boost/beast/http/impl/file_body_win32.ipp b/include/boost/beast/http/impl/file_body_win32.ipp index 5c59ad26..cb3f8c79 100644 --- a/include/boost/beast/http/impl/file_body_win32.ipp +++ b/include/boost/beast/http/impl/file_body_win32.ipp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/http/impl/write.ipp b/include/boost/beast/http/impl/write.ipp index 4e957f46..1dd0a1cc 100644 --- a/include/boost/beast/http/impl/write.ipp +++ b/include/boost/beast/http/impl/write.ipp @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/http/serializer.hpp b/include/boost/beast/http/serializer.hpp index df7a7745..73ad68f1 100644 --- a/include/boost/beast/http/serializer.hpp +++ b/include/boost/beast/http/serializer.hpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/http/type_traits.hpp b/include/boost/beast/http/type_traits.hpp index ca653649..cbe1751c 100644 --- a/include/boost/beast/http/type_traits.hpp +++ b/include/boost/beast/http/type_traits.hpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/websocket/impl/close.hpp b/include/boost/beast/websocket/impl/close.hpp index a61ed570..c40d27c0 100644 --- a/include/boost/beast/websocket/impl/close.hpp +++ b/include/boost/beast/websocket/impl/close.hpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/websocket/impl/handshake.hpp b/include/boost/beast/websocket/impl/handshake.hpp index 247be2fc..07481b79 100644 --- a/include/boost/beast/websocket/impl/handshake.hpp +++ b/include/boost/beast/websocket/impl/handshake.hpp @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/websocket/impl/ping.hpp b/include/boost/beast/websocket/impl/ping.hpp index 72307991..a160ed1a 100644 --- a/include/boost/beast/websocket/impl/ping.hpp +++ b/include/boost/beast/websocket/impl/ping.hpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/websocket/impl/read.hpp b/include/boost/beast/websocket/impl/read.hpp index 05e019c7..facc5981 100644 --- a/include/boost/beast/websocket/impl/read.hpp +++ b/include/boost/beast/websocket/impl/read.hpp @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/websocket/impl/stream.hpp b/include/boost/beast/websocket/impl/stream.hpp index 2fa96914..2585021a 100644 --- a/include/boost/beast/websocket/impl/stream.hpp +++ b/include/boost/beast/websocket/impl/stream.hpp @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/beast/websocket/impl/teardown.hpp b/include/boost/beast/websocket/impl/teardown.hpp index eebf9796..294516e8 100644 --- a/include/boost/beast/websocket/impl/teardown.hpp +++ b/include/boost/beast/websocket/impl/teardown.hpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include @@ -168,7 +168,7 @@ async_teardown( net::ip::tcp::socket& socket, TeardownHandler&& handler) { - static_assert(beast::is_completion_handler< + static_assert(beast::detail::is_invocable< TeardownHandler, void(error_code)>::value, "TeardownHandler requirements not met"); detail::teardown_tcp_op #include #include -#include #include #include #include diff --git a/test/beast/core/CMakeLists.txt b/test/beast/core/CMakeLists.txt index d52f233b..5be94c3d 100644 --- a/test/beast/core/CMakeLists.txt +++ b/test/beast/core/CMakeLists.txt @@ -65,7 +65,6 @@ add_executable (tests-beast-core string.cpp string_param.cpp timeout_stream.cpp - type_traits.cpp ) set_property(TARGET tests-beast-core PROPERTY FOLDER "tests") diff --git a/test/beast/core/Jamfile b/test/beast/core/Jamfile index c5287237..18d4d0f1 100644 --- a/test/beast/core/Jamfile +++ b/test/beast/core/Jamfile @@ -53,7 +53,6 @@ local SOURCES = string.cpp string_param.cpp timeout_stream.cpp - type_traits.cpp ; local RUN_TESTS ; diff --git a/test/beast/core/buffer_test.hpp b/test/beast/core/buffer_test.hpp index f2378145..2e0a4b9d 100644 --- a/test/beast/core/buffer_test.hpp +++ b/test/beast/core/buffer_test.hpp @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include diff --git a/test/beast/core/buffers_prefix.cpp b/test/beast/core/buffers_prefix.cpp index bc2b655f..641b0b31 100644 --- a/test/beast/core/buffers_prefix.cpp +++ b/test/beast/core/buffers_prefix.cpp @@ -14,7 +14,6 @@ #include #include -#include #include #include diff --git a/test/beast/core/file_posix.cpp b/test/beast/core/file_posix.cpp index e2e806c1..82568590 100644 --- a/test/beast/core/file_posix.cpp +++ b/test/beast/core/file_posix.cpp @@ -14,7 +14,6 @@ #include "file_test.hpp" -#include #include namespace boost { diff --git a/test/beast/core/file_stdio.cpp b/test/beast/core/file_stdio.cpp index 281a89d2..2fb494f2 100644 --- a/test/beast/core/file_stdio.cpp +++ b/test/beast/core/file_stdio.cpp @@ -12,7 +12,6 @@ #include "file_test.hpp" -#include #include namespace boost { diff --git a/test/beast/core/file_win32.cpp b/test/beast/core/file_win32.cpp index ef5eaf7e..9b792a65 100644 --- a/test/beast/core/file_win32.cpp +++ b/test/beast/core/file_win32.cpp @@ -14,7 +14,6 @@ #include "file_test.hpp" -#include #include namespace boost { diff --git a/test/beast/core/multi_buffer.cpp b/test/beast/core/multi_buffer.cpp index 93b92cf3..eaf73040 100644 --- a/test/beast/core/multi_buffer.cpp +++ b/test/beast/core/multi_buffer.cpp @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include diff --git a/test/beast/core/stream_traits.cpp b/test/beast/core/stream_traits.cpp index d1aed4aa..e1acaa8f 100644 --- a/test/beast/core/stream_traits.cpp +++ b/test/beast/core/stream_traits.cpp @@ -12,7 +12,6 @@ #include #include -#include #include namespace boost { diff --git a/test/beast/core/type_traits.cpp b/test/beast/core/type_traits.cpp deleted file mode 100644 index 23fe51c4..00000000 --- a/test/beast/core/type_traits.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) 2016-2017 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 - -#include -#include -#include -#include -#include - -namespace boost { -namespace beast { - -// -// handler concepts -// - -namespace { - -struct H -{ - void operator()(int){} -}; - -} // anonymous - -BOOST_STATIC_ASSERT(is_completion_handler::value); -BOOST_STATIC_ASSERT(! is_completion_handler::value); - -} // beast -} // boost diff --git a/test/bench/parser/nodejs_parser.hpp b/test/bench/parser/nodejs_parser.hpp index d94a2933..98904293 100644 --- a/test/bench/parser/nodejs_parser.hpp +++ b/test/bench/parser/nodejs_parser.hpp @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include