34 template <
class... Args>
44 return std::move(
value);
59 value = std::move(other);
82 template <std::ranges::input_range R>
83 requires(!std::same_as<u8_buffer<T>, std::decay_t<R>> && std::convertible_to<std::ranges::range_value_t<R>, T>)
107 std::fill(this->
begin(), this->
end(), val);
111 template <std::ranges::input_range R>
112 requires(!std::same_as<u8_buffer<T>, std::decay_t<R>>
113 && std::convertible_to<std::ranges::range_value_t<R>, T>)
116 , buffer_adaptor_type(holder_type::value)
118 std::ranges::copy(range, this->begin());
126 std::copy(ilist.begin(), ilist.end(), this->begin());
constexpr iterator begin() noexcept
buffer_adaptor(FromBufferRef buf)
constexpr size_type size() const noexcept
constexpr iterator end() noexcept
const T & storage() const
buffer< std::uint8_t > value
buffer_adaptor< T, buffer< std::uint8_t > & > buffer_adaptor_type
u8_buffer & operator=(u8_buffer &&other)=delete
u8_buffer & operator=(u8_buffer &other)=delete
buffer< std::uint8_t > extract_storage() &&
detail::holder< buffer< std::uint8_t > > holder_type
u8_buffer(const u8_buffer &other)
u8_buffer(u8_buffer &&other)
u8_buffer(std::initializer_list< T > ilist)
u8_buffer(std::size_t n, const T &val=T{})
std::size_t range_size(R &&r)