Celeritas 0.7.0-dev.246+develop.67e9bdac
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
celeritas::EnumArray< E, T > Class Template Reference

Thin wrapper for an array of enums for accessing by enum instead of int. More...

#include <EnumArray.hh>

Public Types

enum  { N = static_cast<size_type>(E::size_) }
 
using CArrayConstRef = T const(&)[N]
 
Type aliases
using key_type = E
 
using value_type = T
 
using size_type = std::underlying_type_t< E >
 
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
 

Public Member Functions

constexpr EnumArray ()
 Default construction initializes to zero.
 
constexpr EnumArray (CArrayConstRef values)
 Construct from an array for aggregate initialization of daughters.
 
 EnumArray (T first)
 Construct with C-style aggregate initialization.
 
template<class... Us>
constexpr EnumArray (T first, Us... rest)
 Construct with the array's data.
 
constexpr reference operator[] (key_type const &k)
 Get an element.
 
constexpr const_reference operator[] (key_type const &k) const
 Get an element (const)
 
constexpr const_reference front () const
 
constexpr reference front ()
 
constexpr const_reference back () const
 
constexpr reference back ()
 
constexpr const_pointer data () const
 
constexpr pointer data ()
 
constexpr iterator begin ()
 
constexpr iterator end ()
 
constexpr const_iterator begin () const
 
constexpr const_iterator end () const
 
constexpr const_iterator cbegin () const
 
constexpr const_iterator cend () const
 
constexpr bool empty () const
 
constexpr size_type size () const
 

Detailed Description

template<class E, class T>
class celeritas::EnumArray< E, T >

Thin wrapper for an array of enums for accessing by enum instead of int.

The enum must be a zero-indexed contiguous enumeration with a size_ enumeration as its last value.

Todo:
The template parameters are reversed!!!

Member Function Documentation

◆ back() [1/2]

template<class E , class T >
constexpr reference celeritas::EnumArray< E, T >::back ( )
inlineconstexpr

Element access

◆ back() [2/2]

template<class E , class T >
constexpr const_reference celeritas::EnumArray< E, T >::back ( ) const
inlineconstexpr

Element access

◆ begin() [1/2]

template<class E , class T >
constexpr iterator celeritas::EnumArray< E, T >::begin ( )
inlineconstexpr

Iterator access

◆ begin() [2/2]

template<class E , class T >
constexpr const_iterator celeritas::EnumArray< E, T >::begin ( ) const
inlineconstexpr

Iterator access

◆ cbegin()

template<class E , class T >
constexpr const_iterator celeritas::EnumArray< E, T >::cbegin ( ) const
inlineconstexpr

Iterator access

◆ cend()

template<class E , class T >
constexpr const_iterator celeritas::EnumArray< E, T >::cend ( ) const
inlineconstexpr

Iterator access

◆ data() [1/2]

template<class E , class T >
constexpr pointer celeritas::EnumArray< E, T >::data ( )
inlineconstexpr

Element access

◆ data() [2/2]

template<class E , class T >
constexpr const_pointer celeritas::EnumArray< E, T >::data ( ) const
inlineconstexpr

Element access

◆ empty()

template<class E , class T >
constexpr bool celeritas::EnumArray< E, T >::empty ( ) const
inlineconstexpr

Capacity

◆ end() [1/2]

template<class E , class T >
constexpr iterator celeritas::EnumArray< E, T >::end ( )
inlineconstexpr

Iterator access

◆ end() [2/2]

template<class E , class T >
constexpr const_iterator celeritas::EnumArray< E, T >::end ( ) const
inlineconstexpr

Iterator access

◆ front() [1/2]

template<class E , class T >
constexpr reference celeritas::EnumArray< E, T >::front ( )
inlineconstexpr

Element access

◆ front() [2/2]

template<class E , class T >
constexpr const_reference celeritas::EnumArray< E, T >::front ( ) const
inlineconstexpr

Element access

◆ size()

template<class E , class T >
constexpr size_type celeritas::EnumArray< E, T >::size ( ) const
inlineconstexpr

Capacity


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