HerdSoftware  0.4.0
AxesArray.h
Go to the documentation of this file.
1 /*
2  * AxesArray.h
3  *
4  * Created on: 9 Jan 2019
5  * Author: Nicola Mori
6  */
7 
8 #ifndef HERD_AXESARRAY_H_
9 #define HERD_AXESARRAY_H_
10 
11 // HerdSoftware headers
14 
15 namespace Herd {
27 template <typename ContainedClass> class AxesArray : public ArrayForwarder<ContainedClass, RefFrame::NAxes> {
28 public:
30 
39  constexpr ContainedClass &operator[](const RefFrame::Axis &axis) {
40  return BaseType::operator[](static_cast<int>(axis));
41  }
42 
51  constexpr const ContainedClass &operator[](const RefFrame::Axis &axis) const {
52  return BaseType::operator[](static_cast<int>(axis));
53  }
54 
64  constexpr ContainedClass &at(const RefFrame::Axis &axis) { return BaseType::at(static_cast<int>(axis)); }
65 
75  constexpr const ContainedClass &at(const RefFrame::Axis &axis) const { return BaseType::at(static_cast<int>(axis)); }
76 };
77 
78 } // namespace Herd
79 
80 #endif /* HERD_AXESARRAY_H_ */
Herd::AxesArray::operator[]
constexpr ContainedClass & operator[](const RefFrame::Axis &axis)
Accesses an element without validity check on the element index.
Definition: AxesArray.h:39
Herd::AxesArray::at
constexpr ContainedClass & at(const RefFrame::Axis &axis)
Accesses an element with validity check on the element index.
Definition: AxesArray.h:64
Herd::AxesArray
An array that accepts axis as subscripts.
Definition: AxesArray.h:27
Herd::AxesArray::operator[]
constexpr const ContainedClass & operator[](const RefFrame::Axis &axis) const
Accesses an element without validity check on the element index.
Definition: AxesArray.h:51
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::ArrayForwarder< ContainedClass, RefFrame::NAxes >::at
_GLIBCXX17_CONSTEXPR reference at(size_type __n)
Definition: ArrayForwarder.h:152
RefFrame.h
ArrayForwarder.h
Herd::AxesArray::at
constexpr const ContainedClass & at(const RefFrame::Axis &axis) const
Accesses an element with validity check on the element index.
Definition: AxesArray.h:75
Herd::RefFrame::Axis
Axis
Aliases for the axes.
Definition: RefFrame.h:34
Herd::ArrayForwarder
A forwarder class for std::array.
Definition: ArrayForwarder.h:48
Herd::ArrayForwarder< ContainedClass, RefFrame::NAxes >::operator[]
_GLIBCXX17_CONSTEXPR reference operator[](size_type __n) noexcept
Definition: ArrayForwarder.h:148