RTC Toolkit 6.0.0
Loading...
Searching...
No Matches
rtctk::componentFramework::MatrixSpan< T > Class Template Reference

A span referencing a 2D matrix buffer. More...

#include <rtctk/componentFramework/matrixSpan.hpp>

Inheritance diagram for rtctk::componentFramework::MatrixSpan< T >:

Public Types

using const_pointer = const T*
 
using const_reference = const T&
 

Public Member Functions

constexpr MatrixSpan () noexcept
 
constexpr MatrixSpan (const MatrixSpan &other)
 
constexpr MatrixSpanoperator= (const MatrixSpan &other)
 
constexpr MatrixSpan (MatrixSpan &&other) noexcept
 
constexpr MatrixSpanoperator= (MatrixSpan &&other) noexcept
 
constexpr MatrixSpan (size_type n, size_type m, const gsl::span< T > &data)
 
template<class I>
constexpr MatrixSpan (size_type n, size_type m, I first, size_type count)
 
template<class I>
constexpr MatrixSpan (size_type n, size_type m, I first, I last)
 
template<std::size_t N>
constexpr MatrixSpan (size_type n, size_type m, element_type(&array)[N]) noexcept
 
template<std::size_t N>
constexpr MatrixSpan (size_type n, size_type m, std::array< T, N > &array) noexcept
 
template<std::size_t N>
constexpr MatrixSpan (size_type n, size_type m, const std::array< T, N > &array) noexcept
 
template<typename R>
constexpr MatrixSpan (size_type n, size_type m, R &&range) noexcept
 
template<typename A>
constexpr MatrixSpan (MatrixBuffer< T, A > &buffer) noexcept
 
template<typename A>
requires std::is_const_v<T> or std::is_volatile_v<T>
constexpr MatrixSpan (MatrixBuffer< std::remove_cv_t< T >, A > &buffer) noexcept
 
template<typename U>
requires std::is_same_v<std::remove_cv_t<T>, std::remove_cv_t<U>>
bool operator== (const MatrixSpan< U > &rhs) const
 
constexpr reference operator() (size_type n, size_type m)
 
constexpr const_reference operator() (size_type n, size_type m) const
 
size_type GetNrows () const
 
size_type GetNcols () const
 
size_t GetElementIndex (size_t row, size_t col)
 

Detailed Description

template<typename T>
class rtctk::componentFramework::MatrixSpan< T >

A span referencing a 2D matrix buffer.

A span class that simply extends gsl::span to record the number of rows and columns of a matrix and checks that this correctly corresponds to the underlying buffer size in debug builds.

Member Typedef Documentation

◆ const_pointer

template<typename T>
using rtctk::componentFramework::MatrixSpan< T >::const_pointer = const T*

◆ const_reference

template<typename T>
using rtctk::componentFramework::MatrixSpan< T >::const_reference = const T&

Constructor & Destructor Documentation

◆ MatrixSpan() [1/12]

template<typename T>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( )
inlineconstexprnoexcept

◆ MatrixSpan() [2/12]

template<typename T>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( const MatrixSpan< T > & other)
inlineconstexpr

◆ MatrixSpan() [3/12]

template<typename T>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( MatrixSpan< T > && other)
inlineconstexprnoexcept

◆ MatrixSpan() [4/12]

template<typename T>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( size_type n,
size_type m,
const gsl::span< T > & data )
inlineexplicitconstexpr

◆ MatrixSpan() [5/12]

template<typename T>
template<class I>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( size_type n,
size_type m,
I first,
size_type count )
inlineexplicitconstexpr

◆ MatrixSpan() [6/12]

template<typename T>
template<class I>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( size_type n,
size_type m,
I first,
I last )
inlineexplicitconstexpr

◆ MatrixSpan() [7/12]

template<typename T>
template<std::size_t N>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( size_type n,
size_type m,
element_type(&) array[N] )
inlineexplicitconstexprnoexcept

◆ MatrixSpan() [8/12]

template<typename T>
template<std::size_t N>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( size_type n,
size_type m,
std::array< T, N > & array )
inlineexplicitconstexprnoexcept

◆ MatrixSpan() [9/12]

template<typename T>
template<std::size_t N>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( size_type n,
size_type m,
const std::array< T, N > & array )
inlineexplicitconstexprnoexcept

◆ MatrixSpan() [10/12]

template<typename T>
template<typename R>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( size_type n,
size_type m,
R && range )
inlineexplicitconstexprnoexcept

◆ MatrixSpan() [11/12]

template<typename T>
template<typename A>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( MatrixBuffer< T, A > & buffer)
inlineexplicitconstexprnoexcept

◆ MatrixSpan() [12/12]

template<typename T>
template<typename A>
requires std::is_const_v<T> or std::is_volatile_v<T>
rtctk::componentFramework::MatrixSpan< T >::MatrixSpan ( MatrixBuffer< std::remove_cv_t< T >, A > & buffer)
inlineexplicitconstexprnoexcept

Member Function Documentation

◆ GetElementIndex()

template<typename T>
size_t rtctk::componentFramework::MatrixSpan< T >::GetElementIndex ( size_t row,
size_t col )
inline

◆ GetNcols()

template<typename T>
size_type rtctk::componentFramework::MatrixSpan< T >::GetNcols ( ) const
inline

◆ GetNrows()

template<typename T>
size_type rtctk::componentFramework::MatrixSpan< T >::GetNrows ( ) const
inline

◆ operator()() [1/2]

template<typename T>
reference rtctk::componentFramework::MatrixSpan< T >::operator() ( size_type n,
size_type m )
inlineconstexpr

◆ operator()() [2/2]

template<typename T>
const_reference rtctk::componentFramework::MatrixSpan< T >::operator() ( size_type n,
size_type m ) const
inlineconstexpr

◆ operator=() [1/2]

template<typename T>
MatrixSpan & rtctk::componentFramework::MatrixSpan< T >::operator= ( const MatrixSpan< T > & other)
inlineconstexpr

◆ operator=() [2/2]

template<typename T>
MatrixSpan & rtctk::componentFramework::MatrixSpan< T >::operator= ( MatrixSpan< T > && other)
inlineconstexprnoexcept

◆ operator==()

template<typename T>
template<typename U>
requires std::is_same_v<std::remove_cv_t<T>, std::remove_cv_t<U>>
bool rtctk::componentFramework::MatrixSpan< T >::operator== ( const MatrixSpan< U > & rhs) const
inline

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