#include <cassert>
#include <cstddef>
#include <span>
#include <type_traits>
#include <utility>
Go to the source code of this file.
|
template<typename T > |
using | DataResult = std::remove_pointer_t< decltype(std::declval< T & >().data())> |
|
|
template<typename T , typename EndOrSize > |
| Span (T *, EndOrSize) -> Span< T > |
|
template<typename T , std::size_t N> |
| Span (T(&)[N]) -> Span< T > |
|
template<typename T > |
| Span (T &&) -> Span< std::enable_if_t<!std::is_lvalue_reference_v< T > &&!std::is_void_v< DataResult< T && > >, const DataResult< T && > > > |
|
template<typename T > |
| Span (T &) -> Span< std::enable_if_t<!std::is_void_v< DataResult< T & > >, DataResult< T & > > > |
|
template<typename T > |
T & | SpanPopBack (Span< T > &span) |
| Pop the last element off a span, and return a reference to that element. More...
|
|
template<typename T > |
Span< const std::byte > | AsBytes (Span< T > s) noexcept |
|
template<typename T > |
Span< std::byte > | AsWritableBytes (Span< T > s) noexcept |
|
template<typename V > |
Span< const std::byte > | MakeByteSpan (V &&v) noexcept |
|
template<typename V > |
Span< std::byte > | MakeWritableByteSpan (V &&v) noexcept |
|
unsigned char * | UCharCast (char *c) |
|
unsigned char * | UCharCast (unsigned char *c) |
|
unsigned char * | UCharCast (signed char *c) |
|
unsigned char * | UCharCast (std::byte *c) |
|
const unsigned char * | UCharCast (const char *c) |
|
const unsigned char * | UCharCast (const unsigned char *c) |
|
const unsigned char * | UCharCast (const signed char *c) |
|
const unsigned char * | UCharCast (const std::byte *c) |
|
template<typename T > |
constexpr auto | UCharSpanCast (Span< T > s) -> Span< typename std::remove_pointer< decltype(UCharCast(s.data()))>::type > |
|
template<typename V > |
constexpr auto | MakeUCharSpan (V &&v) -> decltype(UCharSpanCast(Span{std::forward< V >(v)})) |
| Like the Span constructor, but for (const) unsigned char member types only. More...
|
|
◆ ASSERT_IF_DEBUG
#define ASSERT_IF_DEBUG |
( |
|
x | ) |
|
◆ CONSTEXPR_IF_NOT_DEBUG
#define CONSTEXPR_IF_NOT_DEBUG constexpr |
◆ SPAN_ATTR_LIFETIMEBOUND
#define SPAN_ATTR_LIFETIMEBOUND |
◆ DataResult
template<typename T >
using DataResult = std::remove_pointer_t<decltype(std::declval<T&>().data())> |
◆ AsBytes()
template<typename T >
Span< const std::byte > AsBytes |
( |
Span< T > |
s | ) |
|
|
noexcept |
◆ AsWritableBytes()
template<typename T >
Span< std::byte > AsWritableBytes |
( |
Span< T > |
s | ) |
|
|
noexcept |
◆ MakeByteSpan()
template<typename V >
Span< const std::byte > MakeByteSpan |
( |
V && |
v | ) |
|
|
noexcept |
◆ MakeUCharSpan()
template<typename V >
constexpr auto MakeUCharSpan |
( |
V && |
v | ) |
-> decltype(UCharSpanCast(Span{std::forward<V>(v)})) |
|
constexpr |
Like the Span constructor, but for (const) unsigned char member types only.
Only works for (un)signed char containers.
Definition at line 297 of file span.h.
◆ MakeWritableByteSpan()
template<typename V >
Span< std::byte > MakeWritableByteSpan |
( |
V && |
v | ) |
|
|
noexcept |
◆ Span() [1/4]
template<typename T >
Span |
( |
T && |
| ) |
-> Span< std::enable_if_t<!std::is_lvalue_reference_v< T > &&!std::is_void_v< DataResult< T && > >, const DataResult< T && > > > |
◆ Span() [2/4]
◆ Span() [3/4]
template<typename T , typename EndOrSize >
◆ Span() [4/4]
template<typename T , std::size_t N>
◆ SpanPopBack()
template<typename T >
T & SpanPopBack |
( |
Span< T > & |
span | ) |
|
Pop the last element off a span, and return a reference to that element.
Definition at line 248 of file span.h.
◆ UCharCast() [1/8]
unsigned char * UCharCast |
( |
char * |
c | ) |
|
|
inline |
◆ UCharCast() [2/8]
const unsigned char * UCharCast |
( |
const char * |
c | ) |
|
|
inline |
◆ UCharCast() [3/8]
const unsigned char * UCharCast |
( |
const signed char * |
c | ) |
|
|
inline |
◆ UCharCast() [4/8]
const unsigned char * UCharCast |
( |
const std::byte * |
c | ) |
|
|
inline |
◆ UCharCast() [5/8]
const unsigned char * UCharCast |
( |
const unsigned char * |
c | ) |
|
|
inline |
◆ UCharCast() [6/8]
unsigned char * UCharCast |
( |
signed char * |
c | ) |
|
|
inline |
◆ UCharCast() [7/8]
unsigned char * UCharCast |
( |
std::byte * |
c | ) |
|
|
inline |
◆ UCharCast() [8/8]
unsigned char * UCharCast |
( |
unsigned char * |
c | ) |
|
|
inline |
◆ UCharSpanCast()
template<typename T >
constexpr auto UCharSpanCast |
( |
Span< T > |
s | ) |
-> Span<typename std::remove_pointer<decltype(UCharCast(s.data()))>::type> |
|
constexpr |