LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Public Types | Public Member Functions | Private Attributes | List of all members
nonstd::span_lite::span< T, Extent > Class Template Reference

#include <lf/base/span.h>

Public Types

enum  { extent = Extent }
 
using element_type = T
 
using value_type = typename std11::remove_cv< T >::type
 
using reference = T &
 
using pointer = T *
 
using const_pointer = T const *
 
using const_reference = T const &
 
using size_type = size_t
 
using extent_type = extent_t
 
using iterator = pointer
 
using const_iterator = const_pointer
 
using difference_type = std::ptrdiff_t
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 

Public Member Functions

 span_REQUIRES_0 ((Extent==0)||(Extent==dynamic_extent)) span_constexpr span() span_noexcept
 
span_constexpr_exp span (pointer ptr, size_type count)
 
span_constexpr_exp span (pointer first, pointer last)
 
template<std::size_t N span_REQUIRES_T>
span_constexpr span (element_type(&arr)[N]) span_noexcept
 
span_constexpr span (span const &other) span_noexcept
 
 ~span () span_noexcept
 
span_constexpr14 spanoperator= (span const &other) span_noexcept
 
template<class OtherElementType , extent_type OtherExtent span_REQUIRES_T>
span_constexpr_exp span (span< OtherElementType, OtherExtent > const &other) span_noexcept
 
template<extent_type Count>
span_constexpr_exp span< element_type, Count > first () const
 
template<extent_type Count>
span_constexpr_exp span< element_type, Count > last () const
 
template<size_type Offset, extent_type Count>
span_constexpr_exp span< element_type, Count > subspan () const
 
span_constexpr_exp span< element_type, dynamic_extentfirst (size_type count) const
 
span_constexpr_exp span< element_type, dynamic_extentlast (size_type count) const
 
span_constexpr_exp span< element_type, dynamic_extentsubspan (size_type offset, size_type count=static_cast< size_type >(dynamic_extent)) const
 
span_constexpr size_type size () const span_noexcept
 
span_constexpr std::ptrdiff_t ssize () const span_noexcept
 
span_constexpr size_type size_bytes () const span_noexcept
 
span_nodiscard span_constexpr bool empty () const span_noexcept
 
span_constexpr_exp reference operator[] (size_type idx) const
 
span_constexpr pointer data () const span_noexcept
 
span_constexpr_exp reference front () const span_noexcept
 
span_constexpr_exp reference back () const span_noexcept
 
span_constexpr iterator begin () const span_noexcept
 
span_constexpr iterator end () const span_noexcept
 
span_constexpr const_iterator cbegin () const span_noexcept
 
span_constexpr const_iterator cend () const span_noexcept
 
span_constexpr reverse_iterator rbegin () const span_noexcept
 
span_constexpr reverse_iterator rend () const span_noexcept
 
span_constexpr const_reverse_iterator crbegin () const span_noexcept
 
span_constexpr const_reverse_iterator crend () const span_noexcept
 

Private Attributes

pointer data_
 
size_type size_
 

Detailed Description

template<class T, extent_t Extent>
class nonstd::span_lite::span< T, Extent >

Definition at line 914 of file span.h.

Member Typedef Documentation

◆ const_iterator

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::const_iterator = const_pointer

Definition at line 930 of file span.h.

◆ const_pointer

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::const_pointer = T const *

Definition at line 923 of file span.h.

◆ const_reference

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::const_reference = T const &

Definition at line 924 of file span.h.

◆ const_reverse_iterator

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 935 of file span.h.

◆ difference_type

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::difference_type = std::ptrdiff_t

Definition at line 932 of file span.h.

◆ element_type

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::element_type = T

Definition at line 918 of file span.h.

◆ extent_type

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::extent_type = extent_t

Definition at line 927 of file span.h.

◆ iterator

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::iterator = pointer

Definition at line 929 of file span.h.

◆ pointer

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::pointer = T *

Definition at line 922 of file span.h.

◆ reference

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::reference = T &

Definition at line 921 of file span.h.

◆ reverse_iterator

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 934 of file span.h.

◆ size_type

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::size_type = size_t

Definition at line 926 of file span.h.

◆ value_type

template<class T , extent_t Extent>
using nonstd::span_lite::span< T, Extent >::value_type = typename std11::remove_cv<T>::type

Definition at line 919 of file span.h.

Member Enumeration Documentation

◆ anonymous enum

template<class T , extent_t Extent>
anonymous enum
Enumerator
extent 

Definition at line 938 of file span.h.

Constructor & Destructor Documentation

◆ span() [1/5]

template<class T , extent_t Extent>
span_constexpr_exp nonstd::span_lite::span< T, Extent >::span ( pointer  ptr,
size_type  count 
)
inline

Definition at line 966 of file span.h.

◆ span() [2/5]

template<class T , extent_t Extent>
span_constexpr_exp nonstd::span_lite::span< T, Extent >::span ( pointer  first,
pointer  last 
)
inline

◆ span() [3/5]

template<class T , extent_t Extent>
template<std::size_t N span_REQUIRES_T>
span_constexpr nonstd::span_lite::span< T, Extent >::span ( element_type(&)  arr[N])
inline

Definition at line 994 of file span.h.

◆ span() [4/5]

template<class T , extent_t Extent>
span_constexpr nonstd::span_lite::span< T, Extent >::span ( span< T, Extent > const &  other)
inline

Definition at line 1065 of file span.h.

◆ ~span()

template<class T , extent_t Extent>
nonstd::span_lite::span< T, Extent >::~span ( )
inline

Definition at line 1068 of file span.h.

◆ span() [5/5]

template<class T , extent_t Extent>
template<class OtherElementType , extent_type OtherExtent span_REQUIRES_T>
span_constexpr_exp nonstd::span_lite::span< T, Extent >::span ( span< OtherElementType, OtherExtent > const &  other)
inline

Definition at line 1083 of file span.h.

References nonstd::span_lite::dynamic_extent, and nonstd::span_lite::to_size().

Member Function Documentation

◆ back()

template<class T , extent_t Extent>
span_constexpr_exp reference nonstd::span_lite::span< T, Extent >::back ( ) const
inline

◆ begin()

template<class T , extent_t Extent>
span_constexpr iterator nonstd::span_lite::span< T, Extent >::begin ( ) const
inline

◆ cbegin()

template<class T , extent_t Extent>
span_constexpr const_iterator nonstd::span_lite::span< T, Extent >::cbegin ( ) const
inline

◆ cend()

template<class T , extent_t Extent>
span_constexpr const_iterator nonstd::span_lite::span< T, Extent >::cend ( ) const
inline

◆ crbegin()

template<class T , extent_t Extent>
span_constexpr const_reverse_iterator nonstd::span_lite::span< T, Extent >::crbegin ( ) const
inline

Definition at line 1288 of file span.h.

References nonstd::span_lite::span< T, Extent >::cend().

◆ crend()

template<class T , extent_t Extent>
span_constexpr const_reverse_iterator nonstd::span_lite::span< T, Extent >::crend ( ) const
inline

Definition at line 1293 of file span.h.

References nonstd::span_lite::span< T, Extent >::cbegin().

◆ data()

template<class T , extent_t Extent>
span_constexpr pointer nonstd::span_lite::span< T, Extent >::data ( ) const
inline

◆ empty()

template<class T , extent_t Extent>
span_nodiscard span_constexpr bool nonstd::span_lite::span< T, Extent >::empty ( ) const
inline

◆ end()

template<class T , extent_t Extent>
span_constexpr iterator nonstd::span_lite::span< T, Extent >::end ( ) const
inline

◆ first() [1/2]

template<class T , extent_t Extent>
template<extent_type Count>
span_constexpr_exp span< element_type, Count > nonstd::span_lite::span< T, Extent >::first ( ) const
inline

◆ first() [2/2]

template<class T , extent_t Extent>
span_constexpr_exp span< element_type, dynamic_extent > nonstd::span_lite::span< T, Extent >::first ( size_type  count) const
inline

◆ front()

template<class T , extent_t Extent>
span_constexpr_exp reference nonstd::span_lite::span< T, Extent >::front ( ) const
inline

◆ last() [1/2]

template<class T , extent_t Extent>
template<extent_type Count>
span_constexpr_exp span< element_type, Count > nonstd::span_lite::span< T, Extent >::last ( ) const
inline

◆ last() [2/2]

template<class T , extent_t Extent>
span_constexpr_exp span< element_type, dynamic_extent > nonstd::span_lite::span< T, Extent >::last ( size_type  count) const
inline

◆ operator=()

template<class T , extent_t Extent>
span_constexpr14 span & nonstd::span_lite::span< T, Extent >::operator= ( span< T, Extent > const &  other)
inline

◆ operator[]()

template<class T , extent_t Extent>
span_constexpr_exp reference nonstd::span_lite::span< T, Extent >::operator[] ( size_type  idx) const
inline

◆ rbegin()

template<class T , extent_t Extent>
span_constexpr reverse_iterator nonstd::span_lite::span< T, Extent >::rbegin ( ) const
inline

Definition at line 1278 of file span.h.

References nonstd::span_lite::span< T, Extent >::end().

◆ rend()

template<class T , extent_t Extent>
span_constexpr reverse_iterator nonstd::span_lite::span< T, Extent >::rend ( ) const
inline

Definition at line 1283 of file span.h.

References nonstd::span_lite::span< T, Extent >::begin().

◆ size()

template<class T , extent_t Extent>
span_constexpr size_type nonstd::span_lite::span< T, Extent >::size ( ) const
inline

◆ size_bytes()

template<class T , extent_t Extent>
span_constexpr size_type nonstd::span_lite::span< T, Extent >::size_bytes ( ) const
inline

◆ span_REQUIRES_0()

template<class T , extent_t Extent>
nonstd::span_lite::span< T, Extent >::span_REQUIRES_0 ( (Extent==0)||(Extent==dynamic_extent )
inline

Definition at line 942 of file span.h.

◆ ssize()

template<class T , extent_t Extent>
span_constexpr std::ptrdiff_t nonstd::span_lite::span< T, Extent >::ssize ( ) const
inline

Definition at line 1160 of file span.h.

References nonstd::span_lite::span< T, Extent >::size_.

◆ subspan() [1/2]

template<class T , extent_t Extent>
template<size_type Offset, extent_type Count>
span_constexpr_exp span< element_type, Count > nonstd::span_lite::span< T, Extent >::subspan ( ) const
inline

◆ subspan() [2/2]

template<class T , extent_t Extent>
span_constexpr_exp span< element_type, dynamic_extent > nonstd::span_lite::span< T, Extent >::subspan ( size_type  offset,
size_type  count = static_cast<size_type>(dynamic_extent) 
) const
inline

Member Data Documentation

◆ data_

template<class T , extent_t Extent>
pointer nonstd::span_lite::span< T, Extent >::data_
private

◆ size_

template<class T , extent_t Extent>
size_type nonstd::span_lite::span< T, Extent >::size_
private

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