diff options
Diffstat (limited to 'boost/beast/core/buffers_cat.hpp')
-rw-r--r-- | boost/beast/core/buffers_cat.hpp | 58 |
1 files changed, 25 insertions, 33 deletions
diff --git a/boost/beast/core/buffers_cat.hpp b/boost/beast/core/buffers_cat.hpp index 1d711b3b30..532ea32eef 100644 --- a/boost/beast/core/buffers_cat.hpp +++ b/boost/beast/core/buffers_cat.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,66 +11,59 @@ #define BOOST_BEAST_BUFFERS_CAT_HPP #include <boost/beast/core/detail/config.hpp> +#include <boost/beast/core/buffer_traits.hpp> +#include <boost/beast/core/detail/tuple.hpp> #include <boost/beast/core/detail/type_traits.hpp> -#include <tuple> namespace boost { namespace beast { /** A buffer sequence representing a concatenation of buffer sequences. - @see @ref buffers_cat + @see buffers_cat */ template<class... Buffers> class buffers_cat_view { - std::tuple<Buffers...> bn_; + detail::tuple<Buffers...> bn_; public: /** The type of buffer returned when dereferencing an iterator. - If every buffer sequence in the view is a @b MutableBufferSequence, - then `value_type` will be `boost::asio::mutable_buffer`. - Otherwise, `value_type` will be `boost::asio::const_buffer`. + If every buffer sequence in the view is a <em>MutableBufferSequence</em>, + then `value_type` will be `net::mutable_buffer`. + Otherwise, `value_type` will be `net::const_buffer`. */ #if BOOST_BEAST_DOXYGEN - using value_type = implementation_defined; + using value_type = __see_below__; #else - using value_type = typename - detail::common_buffers_type<Buffers...>::type; + using value_type = buffers_type<Buffers...>; #endif /// The type of iterator used by the concatenated sequence class const_iterator; - /// Constructor - buffers_cat_view(buffers_cat_view&&) = default; - - /// Assignment - buffers_cat_view& operator=(buffers_cat_view&&) = default; + /// Copy Constructor + buffers_cat_view(buffers_cat_view const&) = default; - /// Assignment + /// Copy Assignment buffers_cat_view& operator=(buffers_cat_view const&) = default; /** Constructor @param buffers The list of buffer sequences to concatenate. - Copies of the arguments will be made; however, the ownership - of memory is not transferred. + Copies of the arguments will be maintained for the lifetime + of the concatenated sequence; however, the ownership of the + memory buffers themselves is not transferred. */ explicit buffers_cat_view(Buffers const&... buffers); - //----- - - /// Required for @b BufferSequence - buffers_cat_view(buffers_cat_view const&) = default; - - /// Required for @b BufferSequence + /// Returns an iterator to the first buffer in the sequence const_iterator begin() const; - /// Required for @b BufferSequence + /// Returns an iterator to one past the last buffer in the sequence const_iterator end() const; }; @@ -88,11 +81,11 @@ public: @return A new buffer sequence that represents the concatenation of the input buffer sequences. This buffer sequence will be a - @b MutableBufferSequence if each of the passed buffer sequences is - also a @b MutableBufferSequence; otherwise the returned buffer - sequence will be a @b ConstBufferSequence. + <em>MutableBufferSequence</em> if each of the passed buffer sequences is + also a <em>MutableBufferSequence</em>; otherwise the returned buffer + sequence will be a <em>ConstBufferSequence</em>. - @see @ref buffers_cat_view + @see buffers_cat_view */ #if BOOST_BEAST_DOXYGEN template<class... BufferSequence> @@ -100,20 +93,19 @@ buffers_cat_view<BufferSequence...> buffers_cat(BufferSequence const&... buffers) #else template<class B1, class B2, class... Bn> -inline buffers_cat_view<B1, B2, Bn...> buffers_cat(B1 const& b1, B2 const& b2, Bn const&... bn) #endif { static_assert( - detail::is_all_const_buffer_sequence<B1, B2, Bn...>::value, - "BufferSequence requirements not met"); + is_const_buffer_sequence<B1, B2, Bn...>::value, + "BufferSequence type requirements not met"); return buffers_cat_view<B1, B2, Bn...>{b1, b2, bn...}; } } // beast } // boost -#include <boost/beast/core/impl/buffers_cat.ipp> +#include <boost/beast/core/impl/buffers_cat.hpp> #endif |