17    std::list<std::pair<KeyT, ValueT>> m_values;
 
   19    void add(KeyT t_key, ValueT t_value) {
 
   20        m_values.template emplace_back(std::move(t_key), std::move(t_value));
 
   23    typename std::list<std::pair<KeyT, ValueT>>::iterator erase(
const typename std::list<std::pair<KeyT, ValueT>>::iterator & t_it) {
 
   24        return m_values.erase(t_it);
 
   27    [[nodiscard]] 
const ValueT& last_inserted()
 const { 
return m_values.back().second; }
 
   29    void clear() { m_values.clear(); }
 
   31    [[nodiscard]] 
unsigned int size()
 const { 
return m_values.size(); }