Iros
 
Loading...
Searching...
No Matches
di::vocab::Array< T, extent > Struct Template Reference

#include <di/vocab/array/array.h>

Public Member Functions

constexpr auto at (types::size_t index) -> Optional< T & >
 
constexpr auto at (types::size_t index) const -> Optional< T const & >
 
constexpr auto operator[] (types::size_t index) -> T &
 
constexpr auto operator[] (types::size_t index) const -> T const &
 
constexpr auto front () -> T &requires(extent > 0)
 
constexpr auto front () const -> T const &requires(extent > 0)
 
constexpr auto back () -> T &requires(extent > 0)
 
constexpr auto back () const -> T const &requires(extent > 0)
 
constexpr auto data () -> T *
 
constexpr auto data () const -> T const *
 
constexpr auto begin () -> T *
 
constexpr auto begin () const -> T const *
 
constexpr auto end () -> T *
 
constexpr auto end () const -> T const *
 
constexpr auto empty () const -> bool
 
constexpr auto size () const
 
constexpr auto max_size () const
 
constexpr void fill (T const &value)
 
constexpr auto span ()
 
constexpr auto span () const
 
constexpr auto first (types::size_t count)
 
constexpr auto first (types::size_t count) const
 
constexpr auto last (types::size_t count)
 
constexpr auto last (types::size_t count) const
 
constexpr auto subspan (types::size_t offset)
 
constexpr auto subspan (types::size_t offset) const
 
constexpr auto subspan (types::size_t offset, types::size_t count)
 
constexpr auto subspan (types::size_t offset, types::size_t count) const
 
template<types::size_t count>
requires (count <= extent)
constexpr auto first ()
 
template<types::size_t count>
requires (count <= extent)
constexpr auto first () const
 
template<types::size_t count>
requires (count <= extent)
constexpr auto last ()
 
template<types::size_t count>
requires (count <= extent)
constexpr auto last () const
 
template<types::size_t offset, types::size_t count = dynamic_extent>
requires (offset <= extent && (count == dynamic_extent || offset + count <= extent))
constexpr auto subspan ()
 
template<types::size_t offset, types::size_t count = dynamic_extent>
requires (offset <= extent && (count == dynamic_extent || offset + count <= extent))
constexpr auto subspan () const
 
template<types::size_t index>
requires (index < extent)
constexpr auto get () &-> T &
 
template<types::size_t index>
requires (index < extent)
constexpr auto get () const &-> T const &
 
template<types::size_t index>
requires (index < extent)
constexpr auto get () &&-> T &&
 
template<types::size_t index>
requires (index < extent)
constexpr auto get () const &&-> T const &&
 

Public Attributes

m_public_data [extent]
 

Friends

constexpr friend auto operator== (Array const &a, Array const &b) -> bool requires(concepts::EqualityComparable< T >)
 
constexpr friend auto operator<=> (Array const &a, Array const &b)
 
constexpr friend void tag_invoke (types::Tag< util::swap >, Array &a, Array &b)
 
constexpr friend auto tag_invoke (types::Tag< vocab::enable_generate_structed_bindings >, types::InPlaceType< Array >) -> bool
 
constexpr friend auto tag_invoke (types::Tag< vocab::tuple_size >, types::InPlaceType< Array >) -> types::size_t
 
template<concepts::ContiguousIterator It, concepts::SizedSentinelFor< It > Sent>
requires (concepts::ConvertibleToNonSlicing<It, T*>)
constexpr friend auto tag_invoke (types::Tag< container::reconstruct >, InPlaceType< Array >, It first, Sent last) -> Span< T >
 
template<types::size_t index>
requires (index < extent)
constexpr friend auto tag_invoke (types::Tag< vocab::tuple_element >, types::InPlaceType< Array >, Constexpr< index >) -> InPlaceType< T >
 
template<types::size_t index>
requires (index < extent)
constexpr friend auto tag_invoke (types::Tag< vocab::tuple_element >, types::InPlaceType< Array const >, Constexpr< index >) -> InPlaceType< T const >
 
template<concepts::DecaySameAs< Array > Self, types::size_t index>
requires (index < extent)
constexpr friend auto tag_invoke (types::Tag< util::get_in_place >, Constexpr< index >, Self &&self) -> decltype(auto)
 

Member Function Documentation

◆ at() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::at ( types::size_t index) -> Optional<T&>
inlineconstexpr

◆ at() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::at ( types::size_t index) const -> Optional<T const&>
inlineconstexpr

◆ back() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::back ( ) -> T& requires(extent > 0)
inlineconstexpr

◆ back() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::back ( ) const -> T const& requires(extent > 0)
inlineconstexpr

◆ begin() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::begin ( ) -> T*
inlineconstexpr

◆ begin() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::begin ( ) const -> T const*
inlineconstexpr

◆ data() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::data ( ) -> T*
inlineconstexpr

◆ data() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::data ( ) const -> T const*
inlineconstexpr

◆ empty()

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::empty ( ) const -> bool
inlineconstexpr

◆ end() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::end ( ) -> T*
inlineconstexpr

◆ end() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::end ( ) const -> T const*
inlineconstexpr

◆ fill()

template<typename T, types::size_t extent>
void di::vocab::Array< T, extent >::fill ( T const & value)
inlineconstexpr

◆ first() [1/4]

template<typename T, types::size_t extent>
template<types::size_t count>
requires (count <= extent)
auto di::vocab::Array< T, extent >::first ( )
inlineconstexpr

◆ first() [2/4]

template<typename T, types::size_t extent>
template<types::size_t count>
requires (count <= extent)
auto di::vocab::Array< T, extent >::first ( ) const
inlineconstexpr

◆ first() [3/4]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::first ( types::size_t count)
inlineconstexpr

◆ first() [4/4]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::first ( types::size_t count) const
inlineconstexpr

◆ front() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::front ( ) -> T& requires(extent > 0)
inlineconstexpr

◆ front() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::front ( ) const -> T const& requires(extent > 0)
inlineconstexpr

◆ get() [1/4]

template<typename T, types::size_t extent>
template<types::size_t index>
requires (index < extent)
auto di::vocab::Array< T, extent >::get ( ) && -> T&&
inlineconstexpr

◆ get() [2/4]

template<typename T, types::size_t extent>
template<types::size_t index>
requires (index < extent)
auto di::vocab::Array< T, extent >::get ( ) & -> T&
inlineconstexpr

◆ get() [3/4]

template<typename T, types::size_t extent>
template<types::size_t index>
requires (index < extent)
auto di::vocab::Array< T, extent >::get ( ) const && -> T const&&
inlineconstexpr

◆ get() [4/4]

template<typename T, types::size_t extent>
template<types::size_t index>
requires (index < extent)
auto di::vocab::Array< T, extent >::get ( ) const & -> T const&
inlineconstexpr

◆ last() [1/4]

template<typename T, types::size_t extent>
template<types::size_t count>
requires (count <= extent)
auto di::vocab::Array< T, extent >::last ( )
inlineconstexpr

◆ last() [2/4]

template<typename T, types::size_t extent>
template<types::size_t count>
requires (count <= extent)
auto di::vocab::Array< T, extent >::last ( ) const
inlineconstexpr

◆ last() [3/4]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::last ( types::size_t count)
inlineconstexpr

◆ last() [4/4]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::last ( types::size_t count) const
inlineconstexpr

◆ max_size()

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::max_size ( ) const
inlineconstexpr

◆ operator[]() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::operator[] ( types::size_t index) -> T&
inlineconstexpr

◆ operator[]() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::operator[] ( types::size_t index) const -> T const&
inlineconstexpr

◆ size()

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::size ( ) const
inlineconstexpr

◆ span() [1/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::span ( )
inlineconstexpr

◆ span() [2/2]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::span ( ) const
inlineconstexpr

◆ subspan() [1/6]

template<typename T, types::size_t extent>
template<types::size_t offset, types::size_t count = dynamic_extent>
requires (offset <= extent && (count == dynamic_extent || offset + count <= extent))
auto di::vocab::Array< T, extent >::subspan ( )
inlineconstexpr

◆ subspan() [2/6]

template<typename T, types::size_t extent>
template<types::size_t offset, types::size_t count = dynamic_extent>
requires (offset <= extent && (count == dynamic_extent || offset + count <= extent))
auto di::vocab::Array< T, extent >::subspan ( ) const
inlineconstexpr

◆ subspan() [3/6]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::subspan ( types::size_t offset)
inlineconstexpr

◆ subspan() [4/6]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::subspan ( types::size_t offset) const
inlineconstexpr

◆ subspan() [5/6]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::subspan ( types::size_t offset,
types::size_t count )
inlineconstexpr

◆ subspan() [6/6]

template<typename T, types::size_t extent>
auto di::vocab::Array< T, extent >::subspan ( types::size_t offset,
types::size_t count ) const
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator<=>

template<typename T, types::size_t extent>
friend auto operator<=> ( Array< T, extent > const & a,
Array< T, extent > const & b )
friend

◆ operator==

template<typename T, types::size_t extent>
friend auto operator== ( Array< T, extent > const & a,
Array< T, extent > const & b ) -> bool requires(concepts::EqualityComparable<T>)
friend

◆ tag_invoke [1/7]

template<typename T, types::size_t extent>
template<concepts::ContiguousIterator It, concepts::SizedSentinelFor< It > Sent>
requires (concepts::ConvertibleToNonSlicing<It, T*>)
friend auto tag_invoke ( types::Tag< container::reconstruct > ,
InPlaceType< Array< T, extent > > ,
It first,
Sent last ) -> Span<T>
friend

◆ tag_invoke [2/7]

template<typename T, types::size_t extent>
template<concepts::DecaySameAs< Array > Self, types::size_t index>
requires (index < extent)
friend auto tag_invoke ( types::Tag< util::get_in_place > ,
Constexpr< index > ,
Self && self ) -> decltype(auto)
friend

◆ tag_invoke [3/7]

template<typename T, types::size_t extent>
friend void tag_invoke ( types::Tag< util::swap > ,
Array< T, extent > & a,
Array< T, extent > & b )
friend

◆ tag_invoke [4/7]

template<typename T, types::size_t extent>
friend auto tag_invoke ( types::Tag< vocab::enable_generate_structed_bindings > ,
types::InPlaceType< Array< T, extent > >  ) -> bool
friend

◆ tag_invoke [5/7]

template<typename T, types::size_t extent>
template<types::size_t index>
requires (index < extent)
friend auto tag_invoke ( types::Tag< vocab::tuple_element > ,
types::InPlaceType< Array< T, extent > > ,
Constexpr< index >  ) -> InPlaceType<T>
friend

◆ tag_invoke [6/7]

template<typename T, types::size_t extent>
template<types::size_t index>
requires (index < extent)
friend auto tag_invoke ( types::Tag< vocab::tuple_element > ,
types::InPlaceType< Array< T, extent > const > ,
Constexpr< index >  ) -> InPlaceType<T const>
friend

◆ tag_invoke [7/7]

template<typename T, types::size_t extent>
friend auto tag_invoke ( types::Tag< vocab::tuple_size > ,
types::InPlaceType< Array< T, extent > >  ) -> types::size_t
friend

Member Data Documentation

◆ m_public_data

template<typename T, types::size_t extent>
T di::vocab::Array< T, extent >::m_public_data[extent]

The documentation for this struct was generated from the following files: