Celeritas 0.6.0-116+develop.71fe0efe
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

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

Element access

◆ back() [2/2]

template<class E , class T >
CELER_CEF const_reference celeritas::EnumArray< E, T >::back ( ) const
inline

Element access

◆ begin() [1/2]

template<class E , class T >
CELER_CEF iterator celeritas::EnumArray< E, T >::begin ( )
inline

Iterator access

◆ begin() [2/2]

template<class E , class T >
CELER_CEF const_iterator celeritas::EnumArray< E, T >::begin ( ) const
inline

Iterator access

◆ cbegin()

template<class E , class T >
CELER_CEF const_iterator celeritas::EnumArray< E, T >::cbegin ( ) const
inline

Iterator access

◆ cend()

template<class E , class T >
CELER_CEF const_iterator celeritas::EnumArray< E, T >::cend ( ) const
inline

Iterator access

◆ data() [1/2]

template<class E , class T >
CELER_CEF pointer celeritas::EnumArray< E, T >::data ( )
inline

Element access

◆ data() [2/2]

template<class E , class T >
CELER_CEF const_pointer celeritas::EnumArray< E, T >::data ( ) const
inline

Element access

◆ empty()

template<class E , class T >
CELER_CEF bool celeritas::EnumArray< E, T >::empty ( ) const
inline

Capacity

◆ end() [1/2]

template<class E , class T >
CELER_CEF iterator celeritas::EnumArray< E, T >::end ( )
inline

Iterator access

◆ end() [2/2]

template<class E , class T >
CELER_CEF const_iterator celeritas::EnumArray< E, T >::end ( ) const
inline

Iterator access

◆ front() [1/2]

template<class E , class T >
CELER_CEF reference celeritas::EnumArray< E, T >::front ( )
inline

Element access

◆ front() [2/2]

template<class E , class T >
CELER_CEF const_reference celeritas::EnumArray< E, T >::front ( ) const
inline

Element access

◆ size()

template<class E , class T >
CELER_CEF size_type celeritas::EnumArray< E, T >::size ( ) const
inline

Capacity


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