11 template <
typename K,
typename V,
int SIZE>
17 static_assert (SIZE <= 64,
"Map is too big! Max. 64 elements.");
27 return (_validEntries == 0);
34 for (uint8_t i = 0; i < SIZE; i++)
36 size += (((_validEntries >> i) & 0x01) == 0x01) ? 1 : 0;
44 uint8_t index = getNextFreeIndex();
46 if (index != noFreeEntryFoundIndex)
49 values[index] = value;
51 _validEntries |= 1 << index;
62 for (uint8_t i = 0; i < SIZE; i++)
65 if ((_validEntries >> i) & 0x01)
82 for (uint8_t i = 0; i < SIZE; i++)
84 if ((_validEntries >> i) & 0x01)
88 _validEntries &= ~(1 << i);
100 for (uint8_t i = 0; i < SIZE; i++)
103 if ((_validEntries >> i) & 0x01)
117 uint8_t getNextFreeIndex()
119 for (uint8_t i = 0; i < SIZE; i++)
121 if (((_validEntries >> i) & 0x01) == 0)
127 return noFreeEntryFoundIndex;
130 uint64_t _validEntries{0};
133 static constexpr uint8_t noFreeEntryFoundIndex = 255;
bool insertOrAssign(K key, V value)
bool insert(K key, V value)