userver: utils::span< T > Class Template Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
utils::span< T > Class Template Referencefinal

#include <userver/utils/span.hpp>

Detailed Description

template<typename T>
class utils::span< T >

A polyfill for std::span from C++20.

Definition at line 30 of file span.hpp.

Public Types

using iterator = T*
 
using value_type = std::remove_cv_t<T>
 

Public Member Functions

constexpr span (T *begin, T *end) noexcept
 
constexpr span (T *begin, std::size_t size) noexcept
 
template<typename Void = void, typename = std::enable_if_t<std::is_const_v<T> && std::is_void_v<Void>>>
constexpr span (std::initializer_list< value_type > il)
 
template<typename Container>
constexpr span (Container &&cont) noexcept
 
template<std::size_t Size>
constexpr span (impl::TypeIdentity< T >(&array)[Size]) noexcept
 
constexpr T * begin () const noexcept
 
constexpr T * end () const noexcept
 
constexpr T * data () const noexcept
 
constexpr std::size_t size () const noexcept
 
constexpr bool empty () const noexcept
 
constexpr span< T > first (std::size_t count) const noexcept
 
constexpr span< T > last (std::size_t count) const noexcept
 
constexpr span< T > subspan (std::size_t offset) const noexcept
 
constexpr span< T > subspan (std::size_t offset, std::size_t count) const noexcept
 
constexpr T & operator[] (std::size_t index) const noexcept
 

Member Typedef Documentation

◆ iterator

template<typename T>
using utils::span< T >::iterator = T*

Definition at line 32 of file span.hpp.

◆ value_type

template<typename T>
using utils::span< T >::value_type = std::remove_cv_t<T>

Definition at line 33 of file span.hpp.

Constructor & Destructor Documentation

◆ span() [1/6]

template<typename T>
utils::span< T >::span ( )
inlineconstexprnoexcept

Definition at line 35 of file span.hpp.

◆ span() [2/6]

template<typename T>
utils::span< T >::span ( T * begin,
T * end )
inlineconstexprnoexcept

Definition at line 37 of file span.hpp.

◆ span() [3/6]

template<typename T>
utils::span< T >::span ( T * begin,
std::size_t size )
inlineconstexprnoexcept

Definition at line 41 of file span.hpp.

◆ span() [4/6]

template<typename T>
template<typename Void = void, typename = std::enable_if_t<std::is_const_v<T> && std::is_void_v<Void>>>
utils::span< T >::span ( std::initializer_list< value_type > il)
inlineconstexpr

Definition at line 52 of file span.hpp.

◆ span() [5/6]

template<typename T>
template<typename Container>
utils::span< T >::span ( Container && cont)
inlineconstexprnoexcept

Definition at line 69 of file span.hpp.

◆ span() [6/6]

template<typename T>
template<std::size_t Size>
utils::span< T >::span ( impl::TypeIdentity< T >(&) array[Size])
inlineconstexprnoexcept

Definition at line 72 of file span.hpp.

Member Function Documentation

◆ begin()

template<typename T>
T * utils::span< T >::begin ( ) const
inlineconstexprnoexcept

Definition at line 75 of file span.hpp.

◆ data()

template<typename T>
T * utils::span< T >::data ( ) const
inlineconstexprnoexcept

Definition at line 78 of file span.hpp.

◆ empty()

template<typename T>
bool utils::span< T >::empty ( ) const
inlineconstexprnoexcept

Definition at line 80 of file span.hpp.

◆ end()

template<typename T>
T * utils::span< T >::end ( ) const
inlineconstexprnoexcept

Definition at line 76 of file span.hpp.

◆ first()

template<typename T>
span< T > utils::span< T >::first ( std::size_t count) const
inlineconstexprnoexcept

Definition at line 82 of file span.hpp.

◆ last()

template<typename T>
span< T > utils::span< T >::last ( std::size_t count) const
inlineconstexprnoexcept

Definition at line 87 of file span.hpp.

◆ operator[]()

template<typename T>
T & utils::span< T >::operator[] ( std::size_t index) const
inlineconstexprnoexcept

Definition at line 105 of file span.hpp.

◆ size()

template<typename T>
std::size_t utils::span< T >::size ( ) const
inlineconstexprnoexcept

Definition at line 79 of file span.hpp.

◆ subspan() [1/2]

template<typename T>
span< T > utils::span< T >::subspan ( std::size_t offset) const
inlineconstexprnoexcept

Definition at line 92 of file span.hpp.

◆ subspan() [2/2]

template<typename T>
span< T > utils::span< T >::subspan ( std::size_t offset,
std::size_t count ) const
inlineconstexprnoexcept

Definition at line 97 of file span.hpp.


The documentation for this class was generated from the following file: