Stratax 0.3.1
Loading...
Searching...
No Matches
stratax::core::ArrayView< T > Class Template Reference

Classes

class  basic_iterator
 

Public Types

using element_type = T
 
using value_type = std::remove_const_t< element_type >
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using reference = element_type &
 
using const_reference = const value_type &
 
using pointer = element_type *
 
using const_pointer = const value_type *
 
using const_view = ArrayView< const value_type >
 
using iterator = basic_iterator< false >
 
using const_iterator = basic_iterator< true >
 

Public Member Functions

 ArrayView (pointer data, const Shape &shape, const Shape &strides)
 
template<typename U >
requires ( std::is_const_v<element_type> && !std::is_const_v<U> && std::same_as<value_type, std::remove_const_t<U>> )
 ArrayView (const ArrayView< U > &other)
 
const Shapeshape () const noexcept
 
const Shapestrides () const noexcept
 
size_type ndim () const noexcept
 
size_type rank () const noexcept
 
size_type size () const noexcept
 
bool empty () const noexcept
 
pointer data () noexcept
 
const_pointer data () const noexcept
 
const_view as_const () const
 
reference operator[] (size_type index)
 
const_reference operator[] (size_type index) const
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
template<typename... Rest>
requires ((std::is_integral_v<Rest>) && ...)
reference operator() (size_type first, Rest... rest)
 
template<typename... Rest>
requires ((std::is_integral_v<Rest>) && ...)
const_reference operator() (size_type first, Rest... rest) const
 
reference at (difference_type index)
 
const_reference at (difference_type index) const
 
reference at (const std::vector< difference_type > &indices)
 
const_reference at (const std::vector< difference_type > &indices) const
 

Detailed Description

template<typename T>
class stratax::core::ArrayView< T >

Definition at line 17 of file ArrayView.hpp.

Member Typedef Documentation

◆ const_iterator

template<typename T >
using stratax::core::ArrayView< T >::const_iterator = basic_iterator<true>

Definition at line 107 of file ArrayView.hpp.

◆ const_pointer

template<typename T >
using stratax::core::ArrayView< T >::const_pointer = const value_type*

Definition at line 27 of file ArrayView.hpp.

◆ const_reference

template<typename T >
using stratax::core::ArrayView< T >::const_reference = const value_type&

Definition at line 25 of file ArrayView.hpp.

◆ const_view

template<typename T >
using stratax::core::ArrayView< T >::const_view = ArrayView<const value_type>

Definition at line 28 of file ArrayView.hpp.

◆ difference_type

template<typename T >
using stratax::core::ArrayView< T >::difference_type = std::ptrdiff_t

Definition at line 23 of file ArrayView.hpp.

◆ element_type

template<typename T >
using stratax::core::ArrayView< T >::element_type = T

Definition at line 20 of file ArrayView.hpp.

◆ iterator

template<typename T >
using stratax::core::ArrayView< T >::iterator = basic_iterator<false>

Definition at line 106 of file ArrayView.hpp.

◆ pointer

template<typename T >
using stratax::core::ArrayView< T >::pointer = element_type*

Definition at line 26 of file ArrayView.hpp.

◆ reference

template<typename T >
using stratax::core::ArrayView< T >::reference = element_type&

Definition at line 24 of file ArrayView.hpp.

◆ size_type

template<typename T >
using stratax::core::ArrayView< T >::size_type = std::size_t

Definition at line 22 of file ArrayView.hpp.

◆ value_type

template<typename T >
using stratax::core::ArrayView< T >::value_type = std::remove_const_t<element_type>

Definition at line 21 of file ArrayView.hpp.

Constructor & Destructor Documentation

◆ ArrayView() [1/2]

template<typename T >
stratax::core::ArrayView< T >::ArrayView ( pointer  data,
const Shape shape,
const Shape strides 
)
inline

Definition at line 109 of file ArrayView.hpp.

◆ ArrayView() [2/2]

template<typename T >
template<typename U >
requires ( std::is_const_v<element_type> && !std::is_const_v<U> && std::same_as<value_type, std::remove_const_t<U>> )
stratax::core::ArrayView< T >::ArrayView ( const ArrayView< U > &  other)
inline

Definition at line 121 of file ArrayView.hpp.

Member Function Documentation

◆ as_const()

template<typename T >
const_view stratax::core::ArrayView< T >::as_const ( ) const
inline

Definition at line 176 of file ArrayView.hpp.

◆ at() [1/4]

template<typename T >
reference stratax::core::ArrayView< T >::at ( const std::vector< difference_type > &  indices)
inline

Definition at line 250 of file ArrayView.hpp.

◆ at() [2/4]

template<typename T >
const_reference stratax::core::ArrayView< T >::at ( const std::vector< difference_type > &  indices) const
inline

Definition at line 255 of file ArrayView.hpp.

◆ at() [3/4]

template<typename T >
reference stratax::core::ArrayView< T >::at ( difference_type  index)
inline

Definition at line 238 of file ArrayView.hpp.

◆ at() [4/4]

template<typename T >
const_reference stratax::core::ArrayView< T >::at ( difference_type  index) const
inline

Definition at line 244 of file ArrayView.hpp.

◆ begin() [1/2]

template<typename T >
const_iterator stratax::core::ArrayView< T >::begin ( ) const
inlinenoexcept

Definition at line 192 of file ArrayView.hpp.

◆ begin() [2/2]

template<typename T >
iterator stratax::core::ArrayView< T >::begin ( )
inlinenoexcept

Definition at line 191 of file ArrayView.hpp.

◆ cbegin()

template<typename T >
const_iterator stratax::core::ArrayView< T >::cbegin ( ) const
inlinenoexcept

Definition at line 193 of file ArrayView.hpp.

◆ cend()

template<typename T >
const_iterator stratax::core::ArrayView< T >::cend ( ) const
inlinenoexcept

Definition at line 196 of file ArrayView.hpp.

◆ data() [1/2]

template<typename T >
const_pointer stratax::core::ArrayView< T >::data ( ) const
inlinenoexcept

Definition at line 170 of file ArrayView.hpp.

◆ data() [2/2]

template<typename T >
pointer stratax::core::ArrayView< T >::data ( )
inlinenoexcept

Definition at line 164 of file ArrayView.hpp.

◆ empty()

template<typename T >
bool stratax::core::ArrayView< T >::empty ( ) const
inlinenoexcept

Definition at line 158 of file ArrayView.hpp.

◆ end() [1/2]

template<typename T >
const_iterator stratax::core::ArrayView< T >::end ( ) const
inlinenoexcept

Definition at line 195 of file ArrayView.hpp.

◆ end() [2/2]

template<typename T >
iterator stratax::core::ArrayView< T >::end ( )
inlinenoexcept

Definition at line 194 of file ArrayView.hpp.

◆ ndim()

template<typename T >
size_type stratax::core::ArrayView< T >::ndim ( ) const
inlinenoexcept

Definition at line 140 of file ArrayView.hpp.

◆ operator()() [1/2]

template<typename T >
template<typename... Rest>
requires ((std::is_integral_v<Rest>) && ...)
reference stratax::core::ArrayView< T >::operator() ( size_type  first,
Rest...  rest 
)
inline

Definition at line 200 of file ArrayView.hpp.

◆ operator()() [2/2]

template<typename T >
template<typename... Rest>
requires ((std::is_integral_v<Rest>) && ...)
const_reference stratax::core::ArrayView< T >::operator() ( size_type  first,
Rest...  rest 
) const
inline

Definition at line 220 of file ArrayView.hpp.

◆ operator[]() [1/2]

template<typename T >
reference stratax::core::ArrayView< T >::operator[] ( size_type  index)
inline

Definition at line 181 of file ArrayView.hpp.

◆ operator[]() [2/2]

template<typename T >
const_reference stratax::core::ArrayView< T >::operator[] ( size_type  index) const
inline

Definition at line 186 of file ArrayView.hpp.

◆ rank()

template<typename T >
size_type stratax::core::ArrayView< T >::rank ( ) const
inlinenoexcept

Definition at line 146 of file ArrayView.hpp.

◆ shape()

template<typename T >
const Shape & stratax::core::ArrayView< T >::shape ( ) const
inlinenoexcept

Definition at line 128 of file ArrayView.hpp.

◆ size()

template<typename T >
size_type stratax::core::ArrayView< T >::size ( ) const
inlinenoexcept

Definition at line 152 of file ArrayView.hpp.

◆ strides()

template<typename T >
const Shape & stratax::core::ArrayView< T >::strides ( ) const
inlinenoexcept

Definition at line 134 of file ArrayView.hpp.


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