di 0.1.0
Loading...
Searching...
No Matches
di::vocab::Span< T, dynamic_extent > Class Template Reference

#include <di/vocab/span/span_dynamic_size.h>

Inheritance diagram for di::vocab::Span< T, dynamic_extent >:
di::meta::EnableView< Span< T, dynamic_extent > > di::meta::EnableBorrowedContainer< Span< T, dynamic_extent > > di::container::ConstantVectorInterface< Span< T, dynamic_extent >, T >

Public Types

using Value = T
using ConstValue = T

Public Member Functions

constexpr Span ()=default
template<concepts::ContiguousIterator Iter>
requires (concepts::QualificationConvertibleTo<meta::RemoveReference<meta::IteratorReference<Iter>>, T>)
constexpr Span (Iter iterator, types::size_t size)
template<concepts::ContiguousIterator Iter, concepts::SizedSentinelFor< Iter > Sent>
requires (concepts::QualificationConvertibleTo<meta::RemoveReference<meta::IteratorReference<Iter>>, T> && !concepts::ConvertibleTo<Sent, types::size_t>)
constexpr Span (Iter iterator, Sent sentinel)
template<types::size_t size>
constexpr Span (T(&array)[size])
template<concepts::QualificationConvertibleTo< T > U, types::size_t size>
constexpr Span (vocab::Array< U, size > &array)
template<typename U, types::size_t size>
requires (concepts::QualificationConvertibleTo<U const, T>)
constexpr Span (vocab::Array< U, size > const &array)
template<concepts::ContiguousContainer Con>
requires (concepts::SizedContainer<Con> && (concepts::BorrowedContainer<Con> || concepts::Const<T>) && !concepts::Span<Con> && !concepts::Array<Con> && !concepts::LanguageArray<meta::RemoveCVRef<Con>> && concepts::QualificationConvertibleTo<meta::RemoveReference<meta::ContainerReference<Con>>, T>)
constexpr Span (Con &&container)
template<concepts::QualificationConvertibleTo< T > U, types::size_t other_extent>
constexpr Span (Span< U, other_extent > const &other)
constexpr Span (Span const &)=default
constexpr auto operator= (Span const &) -> Span &=default
constexpr auto data () const -> T *
constexpr auto size () const -> types::size_t
constexpr auto span () const -> Span
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto typed_pointer (size_t byte_offset) const -> Optional< U * >
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto typed_pointer (size_t byte_offset) const -> Optional< U const * >
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto typed_pointer_unchecked (size_t byte_offset) const -> U *
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto typed_pointer_unchecked (size_t byte_offset) const -> U const *
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto typed_span (size_t byte_offset, size_t count) const -> Optional< Span< U > >
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto typed_span (size_t byte_offset, size_t count) const -> Optional< Span< U const > >
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto typed_span_unchecked (size_t byte_offset, size_t count) const -> Span< U >
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto typed_span_unchecked (size_t byte_offset, size_t count) const -> Span< U const >
Public Member Functions inherited from di::container::ConstantVectorInterface< Span< T, dynamic_extent >, T >
constexpr auto size () const -> size_t
constexpr auto size_bytes () const -> size_t
constexpr auto empty () const -> bool
constexpr auto begin ()
constexpr auto end ()
constexpr auto front ()
constexpr auto back ()
constexpr auto at (size_t index)
constexpr auto operator[] (size_t index) -> decltype(auto)
constexpr auto iterator (size_t index)
constexpr auto citerator (size_t index) const
constexpr auto data ()
constexpr auto first (size_t count)
constexpr auto last (size_t count)
constexpr auto subspan (size_t offset)

Member Typedef Documentation

◆ ConstValue

template<typename T>
using di::vocab::Span< T, dynamic_extent >::ConstValue = T

◆ Value

template<typename T>
using di::vocab::Span< T, dynamic_extent >::Value = T

Constructor & Destructor Documentation

◆ Span() [1/9]

template<typename T>
di::vocab::Span< T, dynamic_extent >::Span ( )
constexprdefault

◆ Span() [2/9]

template<typename T>
template<concepts::ContiguousIterator Iter>
requires (concepts::QualificationConvertibleTo<meta::RemoveReference<meta::IteratorReference<Iter>>, T>)
di::vocab::Span< T, dynamic_extent >::Span ( Iter iterator,
types::size_t size )
inlineconstexpr

◆ Span() [3/9]

template<typename T>
template<concepts::ContiguousIterator Iter, concepts::SizedSentinelFor< Iter > Sent>
requires (concepts::QualificationConvertibleTo<meta::RemoveReference<meta::IteratorReference<Iter>>, T> && !concepts::ConvertibleTo<Sent, types::size_t>)
di::vocab::Span< T, dynamic_extent >::Span ( Iter iterator,
Sent sentinel )
inlineconstexpr

◆ Span() [4/9]

template<typename T>
template<types::size_t size>
di::vocab::Span< T, dynamic_extent >::Span ( T(&) array[size])
inlineconstexpr

◆ Span() [5/9]

template<typename T>
template<concepts::QualificationConvertibleTo< T > U, types::size_t size>
di::vocab::Span< T, dynamic_extent >::Span ( vocab::Array< U, size > & array)
inlineconstexpr

◆ Span() [6/9]

template<typename T>
template<typename U, types::size_t size>
requires (concepts::QualificationConvertibleTo<U const, T>)
di::vocab::Span< T, dynamic_extent >::Span ( vocab::Array< U, size > const & array)
inlineconstexpr

◆ Span() [7/9]

template<typename T>
template<concepts::ContiguousContainer Con>
requires (concepts::SizedContainer<Con> && (concepts::BorrowedContainer<Con> || concepts::Const<T>) && !concepts::Span<Con> && !concepts::Array<Con> && !concepts::LanguageArray<meta::RemoveCVRef<Con>> && concepts::QualificationConvertibleTo<meta::RemoveReference<meta::ContainerReference<Con>>, T>)
di::vocab::Span< T, dynamic_extent >::Span ( Con && container)
inlineexplicitconstexpr

◆ Span() [8/9]

template<typename T>
template<concepts::QualificationConvertibleTo< T > U, types::size_t other_extent>
di::vocab::Span< T, dynamic_extent >::Span ( Span< U, other_extent > const & other)
inlineconstexpr

◆ Span() [9/9]

template<typename T>
di::vocab::Span< T, dynamic_extent >::Span ( Span< T, dynamic_extent > const & )
constexprdefault

Member Function Documentation

◆ data()

template<typename T>
auto di::vocab::Span< T, dynamic_extent >::data ( ) const->T *
inlineconstexpr

◆ operator=()

template<typename T>
auto di::vocab::Span< T, dynamic_extent >::operator= ( Span< T, dynamic_extent > const & ) ->Span &=default
constexprdefault

◆ size()

template<typename T>
auto di::vocab::Span< T, dynamic_extent >::size ( ) const->types::size_t
inlineconstexpr

◆ span()

template<typename T>
auto di::vocab::Span< T, dynamic_extent >::span ( ) const->Span
inlineconstexpr

◆ typed_pointer() [1/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_pointer ( size_t byte_offset) const->Optional< U * >
inline

◆ typed_pointer() [2/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_pointer ( size_t byte_offset) const->Optional< Uconst * >
inline

◆ typed_pointer_unchecked() [1/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_pointer_unchecked ( size_t byte_offset) const->U *
inline

◆ typed_pointer_unchecked() [2/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_pointer_unchecked ( size_t byte_offset) const->Uconst *
inline

◆ typed_span() [1/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_span ( size_t byte_offset,
size_t count ) const->Optional< Span< U > >
inline

◆ typed_span() [2/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_span ( size_t byte_offset,
size_t count ) const->Optional< Span< Uconst > >
inline

◆ typed_span_unchecked() [1/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_span_unchecked ( size_t byte_offset,
size_t count ) const->Span< U >
inline

◆ typed_span_unchecked() [2/2]

template<typename T>
template<concepts::ImplicitLifetime U>
requires (concepts::SameAs<Byte const, T>)
auto di::vocab::Span< T, dynamic_extent >::typed_span_unchecked ( size_t byte_offset,
size_t count ) const->Span< Uconst >
inline

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