Celeritas 0.7+b3eeee4
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
celeritas::Array< T, N > Class Template Reference

Fixed-size simple array for storage. More...

#include <Array.hh>

Public Types

Type aliases
using value_type = T
 
using size_type = ::celeritas::size_type
 
using pointer = value_type *
 
using const_pointer = value_type const *
 
using reference = value_type &
 
using const_reference = value_type const &
 
using iterator = pointer
 
using const_iterator = const_pointer
 
using CArrayConstRef = T const(&)[N]
 

Public Member Functions

constexpr Array () noexcept
 Default construction initializes to zero.
 
constexpr Array (CArrayConstRef values) noexcept
 Construct from an array for aggregate initialization of daughters.
 
constexpr Array (T first) noexcept
 Construct with C-style aggregate initialization.
 
template<class... Us>
constexpr Array (T first, Us... rest) noexcept
 Construct with the array's data.
 
Element access
constexpr const_reference operator[] (size_type i) const noexcept
 
constexpr reference operator[] (size_type i)
 
constexpr const_reference front () const
 
constexpr reference front ()
 
constexpr const_reference back () const
 
constexpr reference back ()
 
constexpr const_pointer data () const
 
constexpr pointer data ()
 
template<std::size_t I>
constexpr Tget () noexcept
 
template<std::size_t I>
constexpr T constget () const noexcept
 
Iterators
constexpr iterator begin () noexcept
 
constexpr iterator end () noexcept
 
constexpr const_iterator begin () const noexcept
 
constexpr const_iterator end () const noexcept
 
constexpr const_iterator cbegin () const noexcept
 
constexpr const_iterator cend () const noexcept
 
Operations
constexpr void fill (const_reference value) noexcept
 Fill the array with a constant value.
 

Friends

template<class U >
constexpr friend auto operator== (Array const &lhs, Array< U, N > const &rhs) noexcept -> std::enable_if_t< std::is_convertible_v< U, T >, bool >
 Test equality of two arrays.
 
template<class U >
constexpr friend auto operator!= (Array const &lhs, Array< U, N > const &rhs) noexcept -> std::enable_if_t< std::is_convertible_v< U, T >, bool >
 Test inequality of two arrays.
 
constexpr friend Array ldg (Array const *arr) noexcept
 Allow loading via ldg.
 

Capacity

constexpr bool empty () const noexcept
 
static constexpr size_type size () noexcept
 

Detailed Description

template<class T, std::size_t N>
class celeritas::Array< T, N >

Fixed-size simple array for storage.

The Array class is primarily used for point coordinates (e.g., Real3) but is also used for other fixed-size data structures.

This is not fully compatible with std::array:

Note
For supplementary functionality, include:

Member Function Documentation

◆ back() [1/2]

template<class T , std::size_t N>
constexpr reference celeritas::Array< T, N >::back ( )
inlineconstexpr

Access for structured unpacking

◆ back() [2/2]

template<class T , std::size_t N>
constexpr const_reference celeritas::Array< T, N >::back ( ) const
inlineconstexpr

Access for structured unpacking

◆ data() [1/2]

template<class T , std::size_t N>
constexpr pointer celeritas::Array< T, N >::data ( )
inlineconstexpr

Access for structured unpacking

◆ data() [2/2]

template<class T , std::size_t N>
constexpr const_pointer celeritas::Array< T, N >::data ( ) const
inlineconstexpr

Access for structured unpacking

◆ front() [1/2]

template<class T , std::size_t N>
constexpr reference celeritas::Array< T, N >::front ( )
inlineconstexpr

Access for structured unpacking

◆ front() [2/2]

template<class T , std::size_t N>
constexpr const_reference celeritas::Array< T, N >::front ( ) const
inlineconstexpr

Access for structured unpacking

◆ get() [1/2]

template<class T , std::size_t N>
template<std::size_t I>
constexpr T const & celeritas::Array< T, N >::get ( ) const
inlineconstexprnoexcept

Access for structured unpacking

◆ get() [2/2]

template<class T , std::size_t N>
template<std::size_t I>
constexpr T & celeritas::Array< T, N >::get ( )
inlineconstexprnoexcept

Access for structured unpacking

◆ operator[]() [1/2]

template<class T , std::size_t N>
constexpr reference celeritas::Array< T, N >::operator[] ( size_type  i)
inlineconstexpr

Access for structured unpacking

◆ operator[]() [2/2]

template<class T , std::size_t N>
constexpr const_reference celeritas::Array< T, N >::operator[] ( size_type  i) const
inlineconstexprnoexcept

Access for structured unpacking


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