/
usr
/
include
/
boost
/
beast
/
core
/
/usr/include/boost/beast/core
mkdir
upload
Name
Size
Mode
Actions
detail/
-
0755
rm
impl/
-
0755
rm
async_base.hpp
26461
0644
edit
dl
rm
basic_stream.hpp
55342
0644
edit
dl
rm
bind_handler.hpp
4172
0644
edit
dl
rm
buffered_read_stream.hpp
11877
0644
edit
dl
rm
buffers_adaptor.hpp
6783
0644
edit
dl
rm
buffers_cat.hpp
3383
0644
edit
dl
rm
buffers_prefix.hpp
6152
0644
edit
dl
rm
buffers_range.hpp
4211
0644
edit
dl
rm
buffers_suffix.hpp
3971
0644
edit
dl
rm
buffers_to_string.hpp
1770
0644
edit
dl
rm
buffer_traits.hpp
5757
0644
edit
dl
rm
detect_ssl.hpp
22345
0644
edit
dl
rm
error.hpp
2257
0644
edit
dl
rm
file.hpp
1028
0644
edit
dl
rm
file_base.hpp
5015
0644
edit
dl
rm
file_posix.hpp
4222
0644
edit
dl
rm
file_stdio.hpp
3849
0644
edit
dl
rm
file_win32.hpp
4248
0644
edit
dl
rm
flat_buffer.hpp
15427
0644
edit
dl
rm
flat_static_buffer.hpp
8706
0644
edit
dl
rm
flat_stream.hpp
12603
0644
edit
dl
rm
make_printable.hpp
2803
0644
edit
dl
rm
multi_buffer.hpp
18153
0644
edit
dl
rm
ostream.hpp
2690
0644
edit
dl
rm
rate_policy.hpp
4592
0644
edit
dl
rm
read_size.hpp
1844
0644
edit
dl
rm
role.hpp
1322
0644
edit
dl
rm
saved_handler.hpp
3788
0644
edit
dl
rm
span.hpp
4787
0644
edit
dl
rm
static_buffer.hpp
8515
0644
edit
dl
rm
static_string.hpp
25720
0644
edit
dl
rm
stream_traits.hpp
16399
0644
edit
dl
rm
string.hpp
1941
0644
edit
dl
rm
string_param.hpp
3459
0644
edit
dl
rm
string_type.hpp
1092
0644
edit
dl
rm
tcp_stream.hpp
853
0644
edit
dl
rm
Edit:
/usr/include/boost/beast/core/span.hpp
(4787B)
// // 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) // // Official repository: https://github.com/boostorg/beast // #ifndef BOOST_BEAST_CORE_SPAN_HPP #define BOOST_BEAST_CORE_SPAN_HPP #include <boost/beast/core/detail/config.hpp> #include <boost/beast/core/detail/type_traits.hpp> #include <algorithm> #include <iterator> #include <string> #include <type_traits> namespace boost { namespace beast { /** A range of bytes expressed as a ContiguousContainer This class implements a non-owning reference to a storage area of a certain size and having an underlying integral type with size of 1. @tparam T The type pointed to by span iterators */ template<class T> class span { T* data_ = nullptr; std::size_t size_ = 0; public: /// The type of value, including cv qualifiers using element_type = T; /// The type of value of each span element using value_type = typename std::remove_const<T>::type; /// The type of integer used to index the span using index_type = std::ptrdiff_t; /// A pointer to a span element using pointer = T*; /// A reference to a span element using reference = T&; /// The iterator used by the container using iterator = pointer; /// The const pointer used by the container using const_pointer = T const*; /// The const reference used by the container using const_reference = T const&; /// The const iterator used by the container using const_iterator = const_pointer; /// Constructor span() = default; /// Constructor span(span const&) = default; /// Assignment span& operator=(span const&) = default; /** Constructor @param data A pointer to the beginning of the range of elements @param size The number of elements pointed to by `data` */ span(T* data, std::size_t size) : data_(data), size_(size) { } /** Constructor @param container The container to construct from */ template<class ContiguousContainer #if ! BOOST_BEAST_DOXYGEN , class = typename std::enable_if< detail::is_contiguous_container< ContiguousContainer, T>::value>::type #endif > explicit span(ContiguousContainer&& container) : data_(container.data()) , size_(container.size()) { } #if ! BOOST_BEAST_DOXYGEN template<class CharT, class Traits, class Allocator> explicit span(std::basic_string<CharT, Traits, Allocator>& s) : data_(&s[0]) , size_(s.size()) { } template<class CharT, class Traits, class Allocator> explicit span(std::basic_string<CharT, Traits, Allocator> const& s) : data_(s.data()) , size_(s.size()) { } #endif /** Assignment @param container The container to assign from */ template<class ContiguousContainer> #if BOOST_BEAST_DOXYGEN span& #else typename std::enable_if<detail::is_contiguous_container< ContiguousContainer, T>::value, span&>::type #endif operator=(ContiguousContainer&& container) { data_ = container.data(); size_ = container.size(); return *this; } #if ! BOOST_BEAST_DOXYGEN template<class CharT, class Traits, class Allocator> span& operator=(std::basic_string< CharT, Traits, Allocator>& s) { data_ = &s[0]; size_ = s.size(); return *this; } template<class CharT, class Traits, class Allocator> span& operator=(std::basic_string< CharT, Traits, Allocator> const& s) { data_ = s.data(); size_ = s.size(); return *this; } #endif /// Returns `true` if the span is empty bool empty() const { return size_ == 0; } /// Returns a pointer to the beginning of the span T* data() const { return data_; } /// Returns the number of elements in the span std::size_t size() const { return size_; } /// Returns an iterator to the beginning of the span const_iterator begin() const { return data_; } /// Returns an iterator to the beginning of the span const_iterator cbegin() const { return data_; } /// Returns an iterator to one past the end of the span const_iterator end() const { return data_ + size_; } /// Returns an iterator to one past the end of the span const_iterator cend() const { return data_ + size_; } }; } // beast } // boost #endif
Save
cmd:
run