https://mooseframework.inl.gov
Public Types | Public Member Functions | Private Attributes | List of all members
Moose::Span< T > Class Template Reference

Replacement for std::span which we only get in c++20. More...

#include <MooseTypes.h>

Public Types

using element_type = T
 
using size_type = std::size_t
 
using pointer = T *
 
using reference = T &
 

Public Member Functions

constexpr Span (T *ptr, size_type n) noexcept
 
constexpr pointer data () const noexcept
 
constexpr size_type size () const noexcept
 
constexpr bool empty () const noexcept
 
constexpr reference operator[] (size_type i) const noexcept
 
constexpr pointer begin () const noexcept
 
constexpr pointer end () const noexcept
 

Private Attributes

T * _ptr
 
size_type _n
 

Detailed Description

template<typename T>
class Moose::Span< T >

Replacement for std::span which we only get in c++20.

This concept was generated in conversation with chatgpt-5. A few notes

Definition at line 1060 of file MooseTypes.h.

Member Typedef Documentation

◆ element_type

template<typename T >
using Moose::Span< T >::element_type = T

Definition at line 1063 of file MooseTypes.h.

◆ pointer

template<typename T >
using Moose::Span< T >::pointer = T *

Definition at line 1065 of file MooseTypes.h.

◆ reference

template<typename T >
using Moose::Span< T >::reference = T &

Definition at line 1066 of file MooseTypes.h.

◆ size_type

template<typename T >
using Moose::Span< T >::size_type = std::size_t

Definition at line 1064 of file MooseTypes.h.

Constructor & Destructor Documentation

◆ Span()

template<typename T >
constexpr Moose::Span< T >::Span ( T *  ptr,
size_type  n 
)
inlinenoexcept

Definition at line 1068 of file MooseTypes.h.

1068 : _ptr(ptr), _n(n) {}
size_type _n
Definition: MooseTypes.h:1082

Member Function Documentation

◆ begin()

template<typename T >
constexpr pointer Moose::Span< T >::begin ( ) const
inlinenoexcept

Definition at line 1077 of file MooseTypes.h.

1077 { return _ptr; }

◆ data()

template<typename T >
constexpr pointer Moose::Span< T >::data ( ) const
inlinenoexcept

Definition at line 1071 of file MooseTypes.h.

1071 { return _ptr; }

◆ empty()

template<typename T >
constexpr bool Moose::Span< T >::empty ( ) const
inlinenoexcept

Definition at line 1073 of file MooseTypes.h.

1073 { return _n == 0; }
size_type _n
Definition: MooseTypes.h:1082

◆ end()

template<typename T >
constexpr pointer Moose::Span< T >::end ( ) const
inlinenoexcept

Definition at line 1078 of file MooseTypes.h.

1078 { return _ptr + _n; }
size_type _n
Definition: MooseTypes.h:1082

◆ operator[]()

template<typename T >
constexpr reference Moose::Span< T >::operator[] ( size_type  i) const
inlinenoexcept

Definition at line 1076 of file MooseTypes.h.

1076 { return _ptr[i]; }

◆ size()

template<typename T >
constexpr size_type Moose::Span< T >::size ( ) const
inlinenoexcept

Definition at line 1072 of file MooseTypes.h.

1072 { return _n; }
size_type _n
Definition: MooseTypes.h:1082

Member Data Documentation

◆ _n

template<typename T >
size_type Moose::Span< T >::_n
private

◆ _ptr

template<typename T >
T* Moose::Span< T >::_ptr
private

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