di 0.1.0
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< Tconst & >
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->Tconst &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->Tconst *
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->Tconst *
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->Tconst *
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->Tconst &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 &&->Tconst &&
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 &->Tconst &
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->Tconst &
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

◆ 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 )->boolrequires(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< Tconst >
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: