18 std::list<std::pair<KeyT, ValueT>> m_values;
20 void add(KeyT t_key, ValueT t_value) {
21 m_values.emplace_back(std::move(t_key), std::move(t_value));
24 typename std::list<std::pair<KeyT, ValueT>>::iterator erase(
const typename std::list<std::pair<KeyT, ValueT>>::iterator & t_it) {
25 return m_values.erase(t_it);
28 [[nodiscard]]
const ValueT& last_inserted()
const {
return m_values.back().second; }
30 void clear() { m_values.clear(); }
32 [[nodiscard]]
unsigned int size()
const {
return m_values.size(); }
37 Values values() {
return Values(m_values); }
38 [[nodiscard]] ConstValues values()
const {
return ConstValues(m_values); }