|
Monero
|
Non-owning sequence of data. Does not deep copy. More...
#include <span.h>
Public Types | |
| using | value_type = T |
| using | size_type = std::size_t |
| using | difference_type = std::ptrdiff_t |
| using | pointer = T* |
| using | const_pointer = const T* |
| using | reference = T& |
| using | const_reference = const T& |
| using | iterator = pointer |
| using | const_iterator = const_pointer |
Public Member Functions | |
| constexpr | span () noexcept |
| constexpr | span (std::nullptr_t) noexcept |
| template<typename U, typename = typename std::enable_if<safe_conversion<U>()>::type> | |
| constexpr | span (U *const src_ptr, const std::size_t count) noexcept |
| Prevent derived-to-base conversions; invalid in this context. | |
| template<std::size_t N> | |
| constexpr | span (T(&src)[N]) noexcept |
| Conversion from C-array. Prevents common bugs with sizeof + arrays. | |
| constexpr | span (const span &) noexcept=default |
| span & | operator= (const span &) noexcept=default |
| std::size_t | remove_prefix (std::size_t amount) noexcept |
| constexpr iterator | begin () const noexcept |
| constexpr const_iterator | cbegin () const noexcept |
| constexpr iterator | end () const noexcept |
| constexpr const_iterator | cend () const noexcept |
| constexpr bool | empty () const noexcept |
| constexpr pointer | data () const noexcept |
| constexpr std::size_t | size () const noexcept |
| constexpr std::size_t | size_bytes () const noexcept |
| T & | operator[] (size_t idx) noexcept |
| const T & | operator[] (size_t idx) const noexcept |
Static Private Member Functions | |
| template<typename U> | |
| static constexpr bool | safe_conversion () noexcept |
Private Attributes | |
| T * | ptr |
| std::size_t | len |
Non-owning sequence of data. Does not deep copy.
Inspired by gsl::span and/or boost::iterator_range. This class is intended to be used as a parameter type for functions that need to take a writable or read-only sequence of data. Most common cases are span<char> and span<std::uint8_t>. Using as a class member is only recommended if clearly documented as not doing a deep-copy. C-arrays are easily convertible to this type.
| using epee::span< T >::const_iterator = const_pointer |
| using epee::span< T >::const_pointer = const T* |
| using epee::span< T >::const_reference = const T& |
| using epee::span< T >::difference_type = std::ptrdiff_t |
| using epee::span< T >::iterator = pointer |
| using epee::span< T >::pointer = T* |
| using epee::span< T >::reference = T& |
| using epee::span< T >::size_type = std::size_t |
| using epee::span< T >::value_type = T |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Prevent derived-to-base conversions; invalid in this context.
|
inlineconstexprnoexcept |
Conversion from C-array. Prevents common bugs with sizeof + arrays.
|
constexprdefaultnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Try to remove amount elements from beginning of span.
|
inlinestaticconstexprprivatenoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
private |
|
private |