diff options
Diffstat (limited to 'boost/beast/core/ostream.hpp')
-rw-r--r-- | boost/beast/core/ostream.hpp | 74 |
1 files changed, 30 insertions, 44 deletions
diff --git a/boost/beast/core/ostream.hpp b/boost/beast/core/ostream.hpp index 1f00289bd1..46899b6041 100644 --- a/boost/beast/core/ostream.hpp +++ b/boost/beast/core/ostream.hpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com) +// 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) @@ -11,54 +11,21 @@ #define BOOST_BEAST_WRITE_OSTREAM_HPP #include <boost/beast/core/detail/config.hpp> -#include <boost/beast/core/type_traits.hpp> #include <boost/beast/core/detail/ostream.hpp> #include <type_traits> #include <streambuf> #include <utility> +#ifdef BOOST_BEAST_ALLOW_DEPRECATED +#include <boost/beast/core/make_printable.hpp> +#endif + namespace boost { namespace beast { -/** Return an object representing a @b ConstBufferSequence. - - This function wraps a reference to a buffer sequence and permits - the following operation: - - @li `operator<<` to `std::ostream`. No character translation is - performed; unprintable and null characters will be transferred - as-is to the output stream. +/** Return an output stream that formats values into a <em>DynamicBuffer</em>. - @par Example - @code - multi_buffer b; - ... - std::cout << buffers(b.data()) << std::endl; - @endcode - - @param b An object meeting the requirements of @b ConstBufferSequence - to be streamed. The implementation will make a copy of this object. - Ownership of the underlying memory is not transferred, the application - is still responsible for managing its lifetime. -*/ -template<class ConstBufferSequence> -#if BOOST_BEAST_DOXYGEN -implementation_defined -#else -detail::buffers_helper<ConstBufferSequence> -#endif -buffers(ConstBufferSequence const& b) -{ - static_assert(boost::asio::is_const_buffer_sequence< - ConstBufferSequence>::value, - "ConstBufferSequence requirements not met"); - return detail::buffers_helper< - ConstBufferSequence>{b}; -} - -/** Return an output stream that formats values into a @b DynamicBuffer. - - This function wraps the caller provided @b DynamicBuffer into + This function wraps the caller provided <em>DynamicBuffer</em> into a `std::ostream` derived class, to allow `operator<<` stream style formatting operations. @@ -70,7 +37,7 @@ buffers(ConstBufferSequence const& b) @note Calling members of the underlying buffer before the output stream is destroyed results in undefined behavior. - @param buffer An object meeting the requirements of @b DynamicBuffer + @param buffer An object meeting the requirements of <em>DynamicBuffer</em> into which the formatted output will be placed. @return An object derived from `std::ostream` which redirects output @@ -82,7 +49,7 @@ buffers(ConstBufferSequence const& b) */ template<class DynamicBuffer> #if BOOST_BEAST_DOXYGEN -implementation_defined +__implementation_defined__ #else detail::ostream_helper< DynamicBuffer, char, std::char_traits<char>, @@ -91,13 +58,32 @@ detail::ostream_helper< ostream(DynamicBuffer& buffer) { static_assert( - boost::asio::is_dynamic_buffer<DynamicBuffer>::value, - "DynamicBuffer requirements not met"); + net::is_dynamic_buffer<DynamicBuffer>::value, + "DynamicBuffer type requirements not met"); return detail::ostream_helper< DynamicBuffer, char, std::char_traits<char>, detail::basic_streambuf_movable::value>{buffer}; } +//------------------------------------------------------------------------------ + +#ifdef BOOST_BEAST_ALLOW_DEPRECATED +template<class T> +detail::make_printable_adaptor<T> +buffers(T const& t) +{ + return make_printable(t); +} +#else +template<class T> +void buffers(T const&) +{ + static_assert(sizeof(T) == 0, + "The function buffers() is deprecated, use make_printable() instead, " + "or define BOOST_BEAST_ALLOW_DEPRECATED to silence this error."); +} +#endif + } // beast } // boost |