template<typename CharT>
ark::base_buffer class

base type for mutable_buffer and const_buffer

Template parameters
CharT type of chars, if const qualified, then the buffer is immutable and the data should not get modified. Ill-formed if sizeof(CharT) != 1

base_buffer is a buffer of specified type of chars. It is inherited from gsl::span and could be constructed from it, too. As defined in N4771, buffer types are very similar to spans, so only a few extra functions are added here. Most common functions, such as begin() or operator[], were implemented and documented by gsl::span.

Notice that the base_buffer represents an unowning view of the underlying type, and marks it for usage of buffered io operations like ark::sync::read and ark::sync:write. It's the user's responsibility to keep the underlying memory available before any io operation completes.

Constructors, destructors, conversion operators

base_buffer(span<CharT> sp)
construct from a gsl::span
base_buffer(void* p, size_t n)
construct from pointers with size
base_buffer(const void* p, size_t n)
construct from const pointers with size

Public functions

auto operator+=(size_t offset) -> base_buffer<CharT>& noexcept
ascending the buffer

Function documentation

template<typename CharT>
ark::base_buffer<CharT>::base_buffer(const void* p, size_t n)

construct from const pointers with size

internally uses static_cast, so won't work with non-const CharT