Tatooine
Public Types | Public Member Functions | Public Attributes | List of all members
tatooine::non_owning_multidim_array< T, IndexOrder > Class Template Reference

#include <non_owning_multidim_array.h>

Inheritance diagram for tatooine::non_owning_multidim_array< T, IndexOrder >:
[legend]
Collaboration diagram for tatooine::non_owning_multidim_array< T, IndexOrder >:
[legend]

Public Types

using value_type = T
 
using this_type = non_owning_multidim_array< T, IndexOrder >
 
using parent_type = dynamic_multidim_size< IndexOrder >
 
- Public Types inherited from tatooine::dynamic_multidim_size< IndexOrder >
using this_type = dynamic_multidim_size< IndexOrder >
 
using index_order_type = IndexOrder
 

Public Member Functions

 non_owning_multidim_array (non_owning_multidim_array const &other)=default
 
auto operator= (non_owning_multidim_array const &other) -> non_owning_multidim_array &=default
 
 ~non_owning_multidim_array ()=default
 
template<typename OtherIndexing >
auto operator= (non_owning_multidim_array< T, OtherIndexing > const &other) -> non_owning_multidim_array &
 
 non_owning_multidim_array (T const *data, integral auto const ... size)
 
template<unsigned_integral UInt>
 non_owning_multidim_array (T const *data, std::vector< UInt > const &size)
 
auto at (integral auto const ... is) const -> auto const &
 
auto at (range auto const &indices) const -> auto const &
 
auto operator() (integral auto const ... is) const -> auto const &
 
auto operator() (range auto const &indices) const -> auto const &
 
auto operator[] (size_t i) const -> auto const &
 
auto operator[] (size_t i) -> auto &
 
constexpr auto data () const -> auto
 
auto change_data (T const *new_data)
 
auto constexpr in_range (integral auto const ... indices) const
 
auto constexpr in_range (integral_range auto const &indices) const
 
auto indices () const
 
auto num_components () const
 
auto num_dimensions () const
 
auto constexpr plain_index (integral auto const ... indices) const
 
auto constexpr plain_index (integral_range auto const &indices) const
 
auto size () const -> auto const &
 
auto size (std::size_t const i) const
 
- Public Member Functions inherited from tatooine::dynamic_multidim_size< IndexOrder >
 dynamic_multidim_size ()=default
 
 dynamic_multidim_size (dynamic_multidim_size const &other)=default
 
 dynamic_multidim_size (dynamic_multidim_size &&other) noexcept=default
 
auto operator= (dynamic_multidim_size const &other) -> dynamic_multidim_size &=default
 
auto operator= (dynamic_multidim_size &&other) noexcept -> dynamic_multidim_size &=default
 
 ~dynamic_multidim_size ()=default
 
template<typename OtherIndexing >
 dynamic_multidim_size (dynamic_multidim_size< OtherIndexing > const &other)
 
template<typename OtherIndexing >
 dynamic_multidim_size (dynamic_multidim_size< OtherIndexing > &&other)
 
template<typename OtherIndexing >
auto operator= (dynamic_multidim_size< OtherIndexing > const &other) -> dynamic_multidim_size &
 
template<typename OtherIndexing >
auto operator= (dynamic_multidim_size< OtherIndexing > &&other) -> dynamic_multidim_size &
 
 dynamic_multidim_size (integral auto const ... size)
 
 dynamic_multidim_size (std::vector< std::size_t > &&size)
 
 dynamic_multidim_size (integral_range auto const &size)
 
template<typename OtherIndexing >
auto operator== (dynamic_multidim_size< OtherIndexing > const &other) const
 
template<typename OtherIndexing >
auto operator!= (dynamic_multidim_size< OtherIndexing > const &other) const
 
auto num_dimensions () const
 
auto size () const -> auto const &
 
auto size (std::size_t const i) const
 
auto num_components () const
 
auto resize (integral auto const ... size) -> void
 
auto resize (integral_range auto const &size) -> void
 
auto resize (std::vector< std::size_t > &&size) -> void
 
auto resize (std::vector< std::size_t > const &size) -> void
 
auto constexpr in_range (integral auto const ... indices) const
 
auto constexpr in_range (integral_range auto const &indices) const
 
auto constexpr plain_index (integral auto const ... indices) const
 
auto constexpr plain_index (integral_range auto const &indices) const
 
auto constexpr multi_index (std::size_t const gi) const
 
auto begin_indices () const
 
auto end_indices () const
 
auto indices () const
 

Public Attributes

T const * m_data
 

Member Typedef Documentation

◆ parent_type

template<typename T , typename IndexOrder = x_fastest>
using tatooine::non_owning_multidim_array< T, IndexOrder >::parent_type = dynamic_multidim_size<IndexOrder>

◆ this_type

template<typename T , typename IndexOrder = x_fastest>
using tatooine::non_owning_multidim_array< T, IndexOrder >::this_type = non_owning_multidim_array<T, IndexOrder>

◆ value_type

template<typename T , typename IndexOrder = x_fastest>
using tatooine::non_owning_multidim_array< T, IndexOrder >::value_type = T

Constructor & Destructor Documentation

◆ non_owning_multidim_array() [1/3]

template<typename T , typename IndexOrder = x_fastest>
tatooine::non_owning_multidim_array< T, IndexOrder >::non_owning_multidim_array ( non_owning_multidim_array< T, IndexOrder > const &  other)
default

◆ ~non_owning_multidim_array()

template<typename T , typename IndexOrder = x_fastest>
tatooine::non_owning_multidim_array< T, IndexOrder >::~non_owning_multidim_array ( )
default

◆ non_owning_multidim_array() [2/3]

template<typename T , typename IndexOrder = x_fastest>
tatooine::non_owning_multidim_array< T, IndexOrder >::non_owning_multidim_array ( T const *  data,
integral auto const ...  size 
)
inlineexplicit

◆ non_owning_multidim_array() [3/3]

template<typename T , typename IndexOrder = x_fastest>
template<unsigned_integral UInt>
tatooine::non_owning_multidim_array< T, IndexOrder >::non_owning_multidim_array ( T const *  data,
std::vector< UInt > const &  size 
)
inline

Member Function Documentation

◆ at() [1/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::at ( integral auto const ...  is) const -> auto const&
inline

◆ at() [2/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::at ( range auto const &  indices) const -> auto const&
inline

◆ change_data()

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::change_data ( T const *  new_data)
inline

◆ data()

template<typename T , typename IndexOrder = x_fastest>
constexpr auto tatooine::non_owning_multidim_array< T, IndexOrder >::data ( ) const -> auto
inlineconstexpr

◆ in_range() [1/2]

template<typename T , typename IndexOrder = x_fastest>
auto constexpr tatooine::dynamic_multidim_size< IndexOrder >::in_range ( integral auto const ...  indices) const
inlineconstexpr

◆ in_range() [2/2]

template<typename T , typename IndexOrder = x_fastest>
auto constexpr tatooine::dynamic_multidim_size< IndexOrder >::in_range ( integral_range auto const &  indices) const
inlineconstexpr

◆ indices()

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::dynamic_multidim_size< IndexOrder >::indices ( ) const
inline

◆ num_components()

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::dynamic_multidim_size< IndexOrder >::num_components ( ) const
inline

◆ num_dimensions()

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::dynamic_multidim_size< IndexOrder >::num_dimensions ( ) const
inline

◆ operator()() [1/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::operator() ( integral auto const ...  is) const -> auto const&
inline

◆ operator()() [2/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::operator() ( range auto const &  indices) const -> auto const&
inline

◆ operator=() [1/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::operator= ( non_owning_multidim_array< T, IndexOrder > const &  other) -> non_owning_multidim_array &=default
default

◆ operator=() [2/2]

template<typename T , typename IndexOrder = x_fastest>
template<typename OtherIndexing >
auto tatooine::non_owning_multidim_array< T, IndexOrder >::operator= ( non_owning_multidim_array< T, OtherIndexing > const &  other) -> non_owning_multidim_array&
inline

◆ operator[]() [1/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::operator[] ( size_t  i) -> auto&
inline

◆ operator[]() [2/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::non_owning_multidim_array< T, IndexOrder >::operator[] ( size_t  i) const -> auto const&
inline

◆ plain_index() [1/2]

template<typename T , typename IndexOrder = x_fastest>
auto constexpr tatooine::dynamic_multidim_size< IndexOrder >::plain_index ( integral auto const ...  indices) const
inlineconstexpr

◆ plain_index() [2/2]

template<typename T , typename IndexOrder = x_fastest>
auto constexpr tatooine::dynamic_multidim_size< IndexOrder >::plain_index ( integral_range auto const &  indices) const
inlineconstexpr

◆ size() [1/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::dynamic_multidim_size< IndexOrder >::size ( ) const -> auto const&
inline

◆ size() [2/2]

template<typename T , typename IndexOrder = x_fastest>
auto tatooine::dynamic_multidim_size< IndexOrder >::size ( std::size_t const  i) const
inline
Returns
size of dimensions i

Member Data Documentation

◆ m_data

template<typename T , typename IndexOrder = x_fastest>
T const* tatooine::non_owning_multidim_array< T, IndexOrder >::m_data

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