HerdSoftware  0.4.0
DirectionsArray.h
Go to the documentation of this file.
1 /*
2  * DirectionsArray.h
3  *
4  * Created on: 24 Oct 2019
5  * Author: Lorenzo Pacini
6  */
7 
8 #ifndef HERD_DIRECTIONSARRAY_H_
9 #define HERD_DIRECTIONSARRAY_H_
10 
11 // HerdSoftware headers
14 
15 namespace Herd {
71 template <typename ContainedClass> class DirectionsArray : public ArrayForwarder<ContainedClass, RefFrame::NDirections> {
72 public:
74 
83  ContainedClass &operator[](const RefFrame::Direction &direction) { return BaseType::operator[](static_cast<int>(direction)); }
84 
93  const ContainedClass &operator[](const RefFrame::Direction &direction) const {
94  return BaseType::operator[](static_cast<int>(direction));
95  }
96 
106  ContainedClass &at(const RefFrame::Direction &direction) { return BaseType::at(static_cast<int>(direction)); }
107 
117  const ContainedClass &at(const RefFrame::Direction &direction) const { return BaseType::at(static_cast<int>(direction)); }
118 };
119 
120 } // namespace Herd
121 
122 #endif /* HERD_DIRECTIONSARRAY_H_ */
Herd::DirectionsArray::at
const ContainedClass & at(const RefFrame::Direction &direction) const
Accesses an element with validity check on the element index.
Definition: DirectionsArray.h:117
Herd::DirectionsArray::operator[]
const ContainedClass & operator[](const RefFrame::Direction &direction) const
Accesses an element without validity check on the element index.
Definition: DirectionsArray.h:93
Herd::RefFrame::Direction
Direction
Aliases for the six axis directions.
Definition: RefFrame.h:55
Herd::DirectionsArray::at
ContainedClass & at(const RefFrame::Direction &direction)
Accesses an element with validity check on the element index.
Definition: DirectionsArray.h:106
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::ArrayForwarder< ContainedClass, RefFrame::NDirections >::at
_GLIBCXX17_CONSTEXPR reference at(size_type __n)
Definition: ArrayForwarder.h:152
RefFrame.h
ArrayForwarder.h
Herd::DirectionsArray::operator[]
ContainedClass & operator[](const RefFrame::Direction &direction)
Accesses an element without validity check on the element index.
Definition: DirectionsArray.h:83
Herd::DirectionsArray
An array that accepts directions as subscripts.
Definition: DirectionsArray.h:71
Herd::ArrayForwarder
A forwarder class for std::array.
Definition: ArrayForwarder.h:48
Herd::ArrayForwarder< ContainedClass, RefFrame::NDirections >::operator[]
_GLIBCXX17_CONSTEXPR reference operator[](size_type __n) noexcept
Definition: ArrayForwarder.h:148