HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > Class Template Reference

#include <UT_Span.h>

Public Types

using element_type = ElementType
 
using value_type = typename std::remove_cv< ElementType >::type
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using pointer = element_type *
 
using const_pointer = const element_type *
 
using reference = element_type &
 
using const_reference = const element_type &
 
using iterator = pointer
 
using reverse_iterator = std::reverse_iterator< iterator >
 
template<std::size_t Offset, std::size_t Count = dynamic_extent>
using subspan_return_t = span< ElementType, Count!=dynamic_extent?Count:(Extent!=dynamic_extent?Extent-Offset:dynamic_extent)>
 

Public Member Functions

template<std::size_t E = Extent>
constexpr span () noexcept
 
TCB_SPAN_CONSTEXPR11 span (pointer ptr, size_type count)
 
TCB_SPAN_CONSTEXPR11 span (pointer first_elem, pointer last_elem)
 
template<std::size_t N, std::size_t E = Extent, typename std::enable_if< (E==dynamic_extent||N==E)&&detail::is_container_element_type_compatible< element_type(&)[N], ElementType >::value, int >::type = 0>
constexpr span (element_type(&arr)[N]) noexcept
 
template<typename T , std::size_t N, std::size_t E = Extent, typename std::enable_if< (E==dynamic_extent||N==E)&&detail::is_container_element_type_compatible< std::array< T, N > &, ElementType >::value, int >::type = 0>
TCB_SPAN_ARRAY_CONSTEXPR span (std::array< T, N > &arr) noexcept
 
template<typename T , std::size_t N, std::size_t E = Extent, typename std::enable_if< (E==dynamic_extent||N==E)&&detail::is_container_element_type_compatible< const std::array< T, N > &, ElementType >::value, int >::type = 0>
TCB_SPAN_ARRAY_CONSTEXPR span (const std::array< T, N > &arr) noexcept
 
template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< Container &, ElementType >::value, int >::type = 0>
constexpr span (Container &cont)
 
template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< const Container &, ElementType >::value, int >::type = 0>
constexpr span (const Container &cont)
 
constexpr span (const span &other) noexcept=default
 
template<typename OtherElementType , std::size_t OtherExtent, typename std::enable_if< (Extent==dynamic_extent||OtherExtent==dynamic_extent||Extent==OtherExtent)&&std::is_convertible< OtherElementType(*)[], ElementType(*)[]>::value, int >::type = 0>
constexpr span (const span< OtherElementType, OtherExtent > &other) noexcept
 
 ~span () noexcept=default
 
TCB_SPAN_CONSTEXPR_ASSIGN spanoperator= (const span &other) noexcept=default
 
template<std::size_t Count>
TCB_SPAN_CONSTEXPR11 span
< element_type, Count > 
first () const
 
template<std::size_t Count>
TCB_SPAN_CONSTEXPR11 span
< element_type, Count > 
last () const
 
template<std::size_t Offset, std::size_t Count = dynamic_extent>
TCB_SPAN_CONSTEXPR11
subspan_return_t< Offset,
Count > 
subspan () const
 
TCB_SPAN_CONSTEXPR11 span
< element_type, dynamic_extent
first (size_type count) const
 
TCB_SPAN_CONSTEXPR11 span
< element_type, dynamic_extent
last (size_type count) const
 
TCB_SPAN_CONSTEXPR11 span
< element_type, dynamic_extent
subspan (size_type offset, size_type count=dynamic_extent) const
 
constexpr size_type size () const noexcept
 
constexpr size_type size_bytes () const noexcept
 
TCB_SPAN_NODISCARD constexpr bool empty () const noexcept
 
TCB_SPAN_CONSTEXPR11 reference operator[] (size_type idx) const
 
TCB_SPAN_CONSTEXPR11 reference front () const
 
TCB_SPAN_CONSTEXPR11 reference back () const
 
constexpr pointer data () const noexcept
 
constexpr iterator begin () const noexcept
 
constexpr iterator end () const noexcept
 
TCB_SPAN_ARRAY_CONSTEXPR
reverse_iterator 
rbegin () const noexcept
 
TCB_SPAN_ARRAY_CONSTEXPR
reverse_iterator 
rend () const noexcept
 

Static Public Attributes

static constexpr size_type extent = Extent
 

Detailed Description

template<typename ElementType, std::size_t Extent = dynamic_extent>
class TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >

Definition at line 175 of file UT_Span.h.

Member Typedef Documentation

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::const_pointer = const element_type*

Definition at line 331 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::const_reference = const element_type&

Definition at line 333 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::difference_type = std::ptrdiff_t

Definition at line 329 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::element_type = ElementType

Definition at line 326 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::iterator = pointer

Definition at line 334 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::pointer = element_type*

Definition at line 330 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::reference = element_type&

Definition at line 332 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 335 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size_type = std::size_t

Definition at line 328 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<std::size_t Offset, std::size_t Count = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::subspan_return_t = span<ElementType, Count != dynamic_extent ? Count : (Extent != dynamic_extent ? Extent - Offset : dynamic_extent)>

Definition at line 449 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::value_type = typename std::remove_cv<ElementType>::type

Definition at line 327 of file UT_Span.h.

Constructor & Destructor Documentation

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<std::size_t E = Extent>
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( )
inlinenoexcept

Definition at line 343 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( pointer  ptr,
size_type  count 
)
inline

Definition at line 346 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( pointer  first_elem,
pointer  last_elem 
)
inline

Definition at line 352 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<std::size_t N, std::size_t E = Extent, typename std::enable_if< (E==dynamic_extent||N==E)&&detail::is_container_element_type_compatible< element_type(&)[N], ElementType >::value, int >::type = 0>
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( element_type(&)  arr[N])
inlinenoexcept

Definition at line 366 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<typename T , std::size_t N, std::size_t E = Extent, typename std::enable_if< (E==dynamic_extent||N==E)&&detail::is_container_element_type_compatible< std::array< T, N > &, ElementType >::value, int >::type = 0>
TCB_SPAN_ARRAY_CONSTEXPR TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( std::array< T, N > &  arr)
inlinenoexcept

Definition at line 375 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<typename T , std::size_t N, std::size_t E = Extent, typename std::enable_if< (E==dynamic_extent||N==E)&&detail::is_container_element_type_compatible< const std::array< T, N > &, ElementType >::value, int >::type = 0>
TCB_SPAN_ARRAY_CONSTEXPR TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( const std::array< T, N > &  arr)
inlinenoexcept

Definition at line 385 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< Container &, ElementType >::value, int >::type = 0>
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( Container &  cont)
inline

Definition at line 396 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< const Container &, ElementType >::value, int >::type = 0>
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( const Container &  cont)
inline

Definition at line 407 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( const span< ElementType, Extent > &  other)
defaultnoexcept
template<typename ElementType, std::size_t Extent = dynamic_extent>
template<typename OtherElementType , std::size_t OtherExtent, typename std::enable_if< (Extent==dynamic_extent||OtherExtent==dynamic_extent||Extent==OtherExtent)&&std::is_convertible< OtherElementType(*)[], ElementType(*)[]>::value, int >::type = 0>
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ( const span< OtherElementType, OtherExtent > &  other)
inlinenoexcept

Definition at line 420 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::~span ( )
defaultnoexcept

Member Function Documentation

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 reference TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::back ( void  ) const
inline

Definition at line 509 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
constexpr iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::begin ( void  ) const
inlinenoexcept

Definition at line 518 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
constexpr pointer TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::data ( ) const
inlinenoexcept

Definition at line 515 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_NODISCARD constexpr bool TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::empty ( void  ) const
inlinenoexcept

Definition at line 491 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
constexpr iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::end ( void  ) const
inlinenoexcept

Definition at line 520 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<std::size_t Count>
TCB_SPAN_CONSTEXPR11 span<element_type, Count> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::first ( ) const
inline

Definition at line 431 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 span<element_type, dynamic_extent> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::first ( size_type  count) const
inline

Definition at line 461 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 reference TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::front ( void  ) const
inline

Definition at line 503 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<std::size_t Count>
TCB_SPAN_CONSTEXPR11 span<element_type, Count> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::last ( ) const
inline

Definition at line 438 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 span<element_type, dynamic_extent> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::last ( size_type  count) const
inline

Definition at line 468 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR_ASSIGN span& TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::operator= ( const span< ElementType, Extent > &  other)
defaultnoexcept
template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 reference TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::operator[] ( size_type  idx) const
inline

Definition at line 497 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::rbegin ( ) const
inlinenoexcept

Definition at line 522 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::rend ( ) const
inlinenoexcept

Definition at line 527 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
constexpr size_type TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size ( void  ) const
inlinenoexcept

Definition at line 484 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
constexpr size_type TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size_bytes ( ) const
inlinenoexcept

Definition at line 486 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
template<std::size_t Offset, std::size_t Count = dynamic_extent>
TCB_SPAN_CONSTEXPR11 subspan_return_t<Offset, Count> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::subspan ( ) const
inline

Definition at line 452 of file UT_Span.h.

template<typename ElementType, std::size_t Extent = dynamic_extent>
TCB_SPAN_CONSTEXPR11 span<element_type, dynamic_extent> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::subspan ( size_type  offset,
size_type  count = dynamic_extent 
) const
inline

Definition at line 475 of file UT_Span.h.

Member Data Documentation

template<typename ElementType, std::size_t Extent = dynamic_extent>
constexpr size_type TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::extent = Extent
static

Definition at line 337 of file UT_Span.h.


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