summaryrefslogtreecommitdiff
path: root/boost/beast/core/ostream.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/beast/core/ostream.hpp')
-rw-r--r--boost/beast/core/ostream.hpp74
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