NVIDIA DeepStream SDK API Reference

9.2 Release
nostd::span< T, Extent > Class Template Reference

Detailed Description

template<class T, size_t Extent>
class nostd::span< T, Extent >

Back port of std::span.

See https://en.cppreference.com/w/cpp/container/span for interface documentation.

Note: This provides a subset of the methods available on std::span.

Note: The std::span API specifies error cases to have undefined behavior, so this implementation chooses to terminate or assert rather than throw exceptions.

Definition at line 51 of file includes/opentelemetry/nostd/span.h.

Inheritance diagram for nostd::span< T, Extent >:

Public Member Functions

template<bool B = Extent == 0, typename std::enable_if< B >::type * = nullptr>
 span () noexcept
 
 span (T *data, size_t count) noexcept
 
 span (T *first, T *last) noexcept
 
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
 span (T(&array)[N]) noexcept
 
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
 span (std::array< T, N > &array) noexcept
 
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
 span (const std::array< T, N > &array) noexcept
 
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
 span (C &c) noexcept(noexcept(nostd::data(c), nostd::size(c)))
 
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< const C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
 span (const C &c) noexcept(noexcept(nostd::data(c), nostd::size(c)))
 
template<class U , size_t N, typename std::enable_if< N==Extent &&std::is_convertible< U(*)[], T(*)[]>::value >::type * = nullptr>
 span (const span< U, N > &other) noexcept
 
 span (const span &) noexcept=default
 
span & operator= (const span &) noexcept=default
 
bool empty () const noexcept
 
T * data () const noexcept
 
size_t size () const noexcept
 
T & operator[] (size_t index) const noexcept
 
T * begin () const noexcept
 
T * end () const noexcept
 
template<bool B = Extent == 0, typename std::enable_if< B >::type * = nullptr>
 span () noexcept
 
 span (T *data, size_t count) noexcept
 
 span (T *first, T *last) noexcept
 
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
 span (T(&array)[N]) noexcept
 
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
 span (std::array< T, N > &array) noexcept
 
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
 span (const std::array< T, N > &array) noexcept
 
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
 span (C &c) noexcept(noexcept(nostd::data(c), nostd::size(c)))
 
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< const C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
 span (const C &c) noexcept(noexcept(nostd::data(c), nostd::size(c)))
 
template<class U , size_t N, typename std::enable_if< N==Extent &&std::is_convertible< U(*)[], T(*)[]>::value >::type * = nullptr>
 span (const span< U, N > &other) noexcept
 
 span (const span &) noexcept=default
 
span & operator= (const span &) noexcept=default
 
bool empty () const noexcept
 
T * data () const noexcept
 
size_t size () const noexcept
 
T & operator[] (size_t index) const noexcept
 
T * begin () const noexcept
 
T * end () const noexcept
 

Static Public Attributes

static constexpr size_t extent = Extent
 

Constructor & Destructor Documentation

◆ span() [1/20]

template<class T , size_t Extent>
template<bool B = Extent == 0, typename std::enable_if< B >::type * = nullptr>
nostd::span< T, Extent >::span ( )
inlinenoexcept

Definition at line 96 of file includes/opentelemetry/nostd/span.h.

◆ span() [2/20]

template<class T , size_t Extent>
nostd::span< T, Extent >::span ( T *  data,
size_t  count 
)
inlinenoexcept

Definition at line 99 of file includes/opentelemetry/nostd/span.h.

◆ span() [3/20]

template<class T , size_t Extent>
nostd::span< T, Extent >::span ( T *  first,
T *  last 
)
inlinenoexcept

Definition at line 107 of file includes/opentelemetry/nostd/span.h.

◆ span() [4/20]

template<class T , size_t Extent>
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
nostd::span< T, Extent >::span ( T(&)  array[N])
inlinenoexcept

Definition at line 116 of file includes/opentelemetry/nostd/span.h.

◆ span() [5/20]

template<class T , size_t Extent>
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
nostd::span< T, Extent >::span ( std::array< T, N > &  array)
inlinenoexcept

Definition at line 120 of file includes/opentelemetry/nostd/span.h.

◆ span() [6/20]

template<class T , size_t Extent>
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
nostd::span< T, Extent >::span ( const std::array< T, N > &  array)
inlinenoexcept

Definition at line 124 of file includes/opentelemetry/nostd/span.h.

◆ span() [7/20]

template<class T , size_t Extent>
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
nostd::span< T, Extent >::span ( C &  c)
inlinenoexcept

Definition at line 135 of file includes/opentelemetry/nostd/span.h.

◆ span() [8/20]

template<class T , size_t Extent>
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< const C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
nostd::span< T, Extent >::span ( const C &  c)
inlinenoexcept

Definition at line 151 of file includes/opentelemetry/nostd/span.h.

◆ span() [9/20]

template<class T , size_t Extent>
template<class U , size_t N, typename std::enable_if< N==Extent &&std::is_convertible< U(*)[], T(*)[]>::value >::type * = nullptr>
nostd::span< T, Extent >::span ( const span< U, N > &  other)
inlinenoexcept

Definition at line 163 of file includes/opentelemetry/nostd/span.h.

◆ span() [10/20]

template<class T , size_t Extent>
nostd::span< T, Extent >::span ( const span< T, Extent > &  )
defaultnoexcept

◆ span() [11/20]

template<class T , size_t Extent>
template<bool B = Extent == 0, typename std::enable_if< B >::type * = nullptr>
nostd::span< T, Extent >::span ( )
inlinenoexcept

Definition at line 96 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [12/20]

template<class T , size_t Extent>
nostd::span< T, Extent >::span ( T *  data,
size_t  count 
)
inlinenoexcept

Definition at line 99 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [13/20]

template<class T , size_t Extent>
nostd::span< T, Extent >::span ( T *  first,
T *  last 
)
inlinenoexcept

Definition at line 107 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [14/20]

template<class T , size_t Extent>
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
nostd::span< T, Extent >::span ( T(&)  array[N])
inlinenoexcept

Definition at line 116 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [15/20]

template<class T , size_t Extent>
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
nostd::span< T, Extent >::span ( std::array< T, N > &  array)
inlinenoexcept

Definition at line 120 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [16/20]

template<class T , size_t Extent>
template<size_t N, typename std::enable_if< Extent==N >::type * = nullptr>
nostd::span< T, Extent >::span ( const std::array< T, N > &  array)
inlinenoexcept

Definition at line 124 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [17/20]

template<class T , size_t Extent>
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
nostd::span< T, Extent >::span ( C &  c)
inlinenoexcept

Definition at line 135 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [18/20]

template<class T , size_t Extent>
template<class C , typename std::enable_if<!detail::is_specialized_span_convertible< C >::value &&std::is_convertible< typename std::remove_pointer< decltype(nostd::data(std::declval< const C & >()))>::type(*)[], T(*)[]>::value &&std::is_convertible< decltype(nostd::size(std::declval< const C & >())), size_t >::value , ::type * = nullptr>
nostd::span< T, Extent >::span ( const C &  c)
inlinenoexcept

Definition at line 151 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [19/20]

template<class T , size_t Extent>
template<class U , size_t N, typename std::enable_if< N==Extent &&std::is_convertible< U(*)[], T(*)[]>::value >::type * = nullptr>
nostd::span< T, Extent >::span ( const span< U, N > &  other)
inlinenoexcept

Definition at line 163 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ span() [20/20]

template<class T , size_t Extent>
nostd::span< T, Extent >::span ( const span< T, Extent > &  )
defaultnoexcept

Member Function Documentation

◆ begin() [1/2]

◆ begin() [2/2]

template<class T , size_t Extent>
T* nostd::span< T, Extent >::begin ( ) const
inlinenoexcept

Definition at line 182 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ data() [1/2]

template<class T , size_t Extent>
T* nostd::span< T, Extent >::data ( ) const
inlinenoexcept

Definition at line 172 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ data() [2/2]

template<class T , size_t Extent>
T* nostd::span< T, Extent >::data ( ) const
inlinenoexcept

◆ empty() [1/2]

template<class T , size_t Extent>
bool nostd::span< T, Extent >::empty ( ) const
inlinenoexcept

Definition at line 170 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ empty() [2/2]

template<class T , size_t Extent>
bool nostd::span< T, Extent >::empty ( ) const
inlinenoexcept

◆ end() [1/2]

template<class T , size_t Extent>
T* nostd::span< T, Extent >::end ( ) const
inlinenoexcept

Definition at line 184 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ end() [2/2]

template<class T , size_t Extent>
T* nostd::span< T, Extent >::end ( ) const
inlinenoexcept

◆ operator=() [1/2]

template<class T , size_t Extent>
span& nostd::span< T, Extent >::operator= ( const span< T, Extent > &  )
defaultnoexcept

◆ operator=() [2/2]

template<class T , size_t Extent>
span& nostd::span< T, Extent >::operator= ( const span< T, Extent > &  )
defaultnoexcept

◆ operator[]() [1/2]

template<class T , size_t Extent>
T& nostd::span< T, Extent >::operator[] ( size_t  index) const
inlinenoexcept

Definition at line 176 of file includes/opentelemetry/nostd/span.h.

◆ operator[]() [2/2]

template<class T , size_t Extent>
T& nostd::span< T, Extent >::operator[] ( size_t  index) const
inlinenoexcept

Definition at line 176 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ size() [1/2]

template<class T , size_t Extent>
size_t nostd::span< T, Extent >::size ( ) const
inlinenoexcept

Definition at line 174 of file 9.2/includes/opentelemetry/nostd/span.h.

◆ size() [2/2]

template<class T , size_t Extent>
size_t nostd::span< T, Extent >::size ( ) const
inlinenoexcept

Field Documentation

◆ extent

template<class T , size_t Extent>
static constexpr size_t nostd::span< T, Extent >::extent = Extent
staticconstexpr

Definition at line 89 of file includes/opentelemetry/nostd/span.h.


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