ConstBufferSequence

A constant buffer sequence represents zero or more contiguous memory regions as a bidirectional range whose value type is convertible to const_buffer.

Requirements

  • T denotes a type meeting the requirements of ConstBufferSequence.

  • t denotes a (possibly const) value of type T.

  • u denotes an identifier.

  • It is the type decltype(buffers::begin(t)).

Expression Type Semantics, Pre/Post-conditions

std::iterator_traits<It>::value_type

Convertible to const_buffer.

It

Requirements

requires std::bidirectional_iterator<It>

begin(t)

It

Returns an iterator to the first element of the sequence.

end(t)

It

Returns an iterator one past the last element of the sequence.

T u(t);

Requirements

requires
    std::copy_constructible<T> &&
    std::destructible<T>

Post-conditions:

assert( std::ranges::size(t) == std::ranges::size(u) );

for( auto [l, r] : std::views::zip( t, u ) )
{
    assert( l.data() == r.data() );
    assert( l.size() == r.size() );
}