32constexpr inline size_t
48template<
class Row,
typename Value,
typename A = Value>
51 constexpr Matrix1D(std::initializer_list<std::initializer_list<Value>> s);
88 const std::vector<Value> data_;
89 static std::map<A, Row> reverseMapping_;
102template<
class EnumClass>
128 EnumClassIter
begin();
146template<
class Row,
class Column,
typename Value>
170template<
class Row,
typename Value,
typename Accessor>
172 : data_(*
std::begin(s))
174 static_assert(std::is_enum<Row>(),
"Row has to be an enum class");
175 static_assert((
int) Row::COUNT__ > 0,
"Row need a COUNT__ element");
182template<
class Row,
typename Value,
typename Accessor>
187 JAMI_ERR(
"State Machine Out of Bounds %d\n",
size_t(v));
194template<
class Row,
typename Value,
typename Accessor>
199 JAMI_ERR(
"State Machine Out of Bounds %zu\n",
size_t(v));
206template<
class E,
class T,
class A>
209template<
class Row,
typename Value,
typename Accessor>
217template<
class Row,
typename Value,
typename Accessor>
221 if (!reverseMapping_.empty()) {
224 =
static_cast<Row>(
i);
228 if (reverseMapping_.count(
value) == 0) {
231 return reverseMapping_[
value];
234template<
class EnumClass>
237 static_assert(std::is_enum<EnumClass>(),
238 "The first template parameter has to be an enum class\n");
241template<
class EnumClass>
248template<
class EnumClass>
256template<
class EnumClass>
260 return pos_ !=
other.pos_;
263template<
class EnumClass>
270template<
class EnumClass>
277template<
class Row,
typename Value,
typename Accessor>
285template<
class Row,
typename Value,
typename Accessor>
289 return pos_ !=
other.pos_;
292template<
class Row,
typename Value,
typename Accessor>
299template<
class Row,
typename Value,
typename Accessor>
An Iterator for enum classes.
EnumClass operator*() const
const EnumClassIter & operator++()
EnumClassIter(const Matrix0D< EnumClass > *p_vec, size_t pos)
bool operator!=(const EnumClassIter &other) const
An Iterator for enum classes.
EnumClassIter(const Matrix1D< Row, Value, A > *p_vec, size_t pos)
bool operator!=(const EnumClassIter &other) const
const EnumClassIter & operator++()
void emitSignal(Args... args)
constexpr size_t enum_class_size()
This function adds a safe way to get an enum class size.
This generic class represents a multidimensional enum class array.
Row fromValue(const Value &value) const
const Value operator[](Row v) const
constexpr Matrix1D(std::initializer_list< std::initializer_list< Value > > s)
static void setReverseMapping(Matrix1D< Row, const char * > names)