#include <algorithm>
#include <cassert>
#include <cstddef>
#include <span>
#include <type_traits>
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.
|
| |
| 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.
|
| |
◆ 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
| using DataResult = std::remove_pointer_t<decltype(std::declval<T&>().data())> |
◆ AsBytes()
| Span< const std::byte > AsBytes |
( |
Span< T > | s | ) |
|
|
noexcept |
◆ AsWritableBytes()
| Span< std::byte > AsWritableBytes |
( |
Span< T > | s | ) |
|
|
noexcept |
◆ MakeByteSpan()
template<typename V >
| Span< const std::byte > MakeByteSpan |
( |
V && | v | ) |
|
|
noexcept |
◆ MakeUCharSpan()
Like the Span constructor, but for (const) unsigned char member types only.
Only works for (un)signed char containers.
Definition at line 304 of file span.h.
◆ MakeWritableByteSpan()
template<typename V >
| Span< std::byte > MakeWritableByteSpan |
( |
V && | v | ) |
|
|
noexcept |
◆ Span() [1/4]
| 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 |
( |
T * | , |
|
|
EndOrSize | ) -> Span< T > |
◆ Span() [4/4]
template<typename
T , std::size_t N>
| Span |
( |
T(&) | [N] | ) |
-> Span< T > |
◆ SpanPopBack()
| T & SpanPopBack |
( |
Span< T > & | span | ) |
|
Pop the last element off a span, and return a reference to that element.
Definition at line 255 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()
| auto UCharSpanCast |
( |
Span< T > | s | ) |
-> Span<typename std::remove_pointer<decltype(UCharCast(s.data()))>::type> |
|
constexpr |