candlewick 0.1.0
A renderer
Loading...
Searching...
No Matches
candlewick::strided_view< T > Class Template Reference

A strided view to data, allowing for type-erased data. More...

#include <candlewick/utils/StridedView.h>

Classes

class  iterator
 

Public Types

using element_type = T
 
using value_type = std::remove_cv_t<T>
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using pointer = T *
 
using const_pointer = const T *
 
using reference = element_type &
 
using const_reference = const element_type &
 

Public Member Functions

constexpr strided_view () noexcept
 
template<std::random_access_iterator It>
 strided_view (It first, size_type count, size_type stride_bytes) noexcept
 Build a view from an iterator given the size and stride.
 
template<std::random_access_iterator It>
 strided_view (It first, size_type count) noexcept
 Build a view from an iterator and given element count. The stride is assumed to be sizeof(T), i.e. the data is contiguous.
 
template<size_t extent>
 strided_view (std::span< element_type, extent > other, size_type stride_bytes) noexcept
 
template<size_t extent>
 strided_view (std::span< element_type, extent > other) noexcept
 
template<size_t array_extent>
 strided_view (std::type_identity_t< element_type >(&arr)[array_extent], size_t stride_bytes=sizeof(element_type)) noexcept
 
 ~strided_view () noexcept=default
 
strided_viewoperator= (const strided_view &) noexcept=default
 
iterator begin () const
 
iterator end () const
 
iterator cbegin () const
 
iterator cend () const
 
size_type size () const noexcept
 Size (number of elements) of the view.
 
size_type stride_bytes () const noexcept
 Stride in bytes between two elements of the view.
 
size_t max_index () const
 
bool empty () const noexcept
 
reference front () const noexcept
 
reference back () const noexcept
 
reference operator[] (size_type idx) const noexcept
 
reference at (size_type idx) const
 
pointer data () const noexcept
 

Detailed Description

template<typename T>
class candlewick::strided_view< T >

A strided view to data, allowing for type-erased data.

The stride is specified in terms of bytes instead of T.

Template Parameters
TStored data type.

Member Typedef Documentation

◆ const_pointer

template<typename T>
using candlewick::strided_view< T >::const_pointer = const T *

◆ const_reference

template<typename T>
using candlewick::strided_view< T >::const_reference = const element_type &

◆ difference_type

template<typename T>
using candlewick::strided_view< T >::difference_type = std::ptrdiff_t

◆ element_type

template<typename T>
using candlewick::strided_view< T >::element_type = T

◆ pointer

template<typename T>
using candlewick::strided_view< T >::pointer = T *

◆ reference

template<typename T>
using candlewick::strided_view< T >::reference = element_type &

◆ size_type

template<typename T>
using candlewick::strided_view< T >::size_type = std::size_t

◆ value_type

template<typename T>
using candlewick::strided_view< T >::value_type = std::remove_cv_t<T>

Constructor & Destructor Documentation

◆ strided_view() [1/6]

template<typename T>
candlewick::strided_view< T >::strided_view ( )
inlineconstexprnoexcept

◆ strided_view() [2/6]

template<typename T>
template<std::random_access_iterator It>
candlewick::strided_view< T >::strided_view ( It first,
size_type count,
size_type stride_bytes )
inlinenoexcept

Build a view from an iterator given the size and stride.

◆ strided_view() [3/6]

template<typename T>
template<std::random_access_iterator It>
candlewick::strided_view< T >::strided_view ( It first,
size_type count )
inlinenoexcept

Build a view from an iterator and given element count. The stride is assumed to be sizeof(T), i.e. the data is contiguous.

◆ strided_view() [4/6]

template<typename T>
template<size_t extent>
candlewick::strided_view< T >::strided_view ( std::span< element_type, extent > other,
size_type stride_bytes )
inlinenoexcept

◆ strided_view() [5/6]

template<typename T>
template<size_t extent>
candlewick::strided_view< T >::strided_view ( std::span< element_type, extent > other)
inlinenoexcept

◆ strided_view() [6/6]

template<typename T>
template<size_t array_extent>
candlewick::strided_view< T >::strided_view ( std::type_identity_t< element_type >(&) arr[array_extent],
size_t stride_bytes = sizeof(element_type) )
inlinenoexcept

◆ ~strided_view()

template<typename T>
candlewick::strided_view< T >::~strided_view ( )
defaultnoexcept

Member Function Documentation

◆ at()

template<typename T>
reference candlewick::strided_view< T >::at ( size_type idx) const
inlinenodiscard

◆ back()

template<typename T>
reference candlewick::strided_view< T >::back ( ) const
inlinenodiscardnoexcept

◆ begin()

template<typename T>
iterator candlewick::strided_view< T >::begin ( ) const
inline

◆ cbegin()

template<typename T>
iterator candlewick::strided_view< T >::cbegin ( ) const
inline

◆ cend()

template<typename T>
iterator candlewick::strided_view< T >::cend ( ) const
inline

◆ data()

template<typename T>
pointer candlewick::strided_view< T >::data ( ) const
inlinenodiscardnoexcept

◆ empty()

template<typename T>
bool candlewick::strided_view< T >::empty ( ) const
inlinenodiscardnoexcept

◆ end()

template<typename T>
iterator candlewick::strided_view< T >::end ( ) const
inline

◆ front()

template<typename T>
reference candlewick::strided_view< T >::front ( ) const
inlinenodiscardnoexcept

◆ max_index()

template<typename T>
size_t candlewick::strided_view< T >::max_index ( ) const
inlinenodiscard

◆ operator=()

template<typename T>
strided_view & candlewick::strided_view< T >::operator= ( const strided_view< T > & )
defaultnoexcept

◆ operator[]()

template<typename T>
reference candlewick::strided_view< T >::operator[] ( size_type idx) const
inlinenodiscardnoexcept

◆ size()

template<typename T>
size_type candlewick::strided_view< T >::size ( ) const
inlinenodiscardnoexcept

Size (number of elements) of the view.

◆ stride_bytes()

template<typename T>
size_type candlewick::strided_view< T >::stride_bytes ( ) const
inlinenodiscardnoexcept

Stride in bytes between two elements of the view.


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