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 begin () const
 
constexpr auto end ()
 
constexpr auto end () const
 
constexpr auto front ()
 
constexpr auto front () const
 
constexpr auto back ()
 
constexpr auto back () const
 
constexpr auto at (size_t index)
 
constexpr auto at (size_t index) const
 
constexpr auto operator[] (size_t index) -> decltype(auto)
 
constexpr auto operator[] (size_t index) const -> decltype(auto)
 
constexpr auto iterator (size_t index)
 
constexpr auto iterator (size_t index) const
 
constexpr auto citerator (size_t index) const
 
constexpr auto data ()
 
constexpr auto data () const
 
constexpr auto first (size_t count)
 
constexpr auto first (size_t count) const
 
constexpr auto first ()
 
constexpr auto first () const
 
constexpr auto last (size_t count)
 
constexpr auto last (size_t count) const
 
constexpr auto last ()
 
constexpr auto last () const
 
constexpr auto subspan (size_t offset)
 
constexpr auto subspan (size_t offset) const
 
constexpr auto subspan (size_t offset, size_t count)
 
constexpr auto subspan (size_t offset, size_t count) const
 
constexpr auto subspan ()
 
constexpr auto subspan () const
 

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<U const*>
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 -> U const*
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<U const>>
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<U const>
inline

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