const value_t &get(const key_t &key){ auto it = cache_map.find(key); if (it == cache_map.end()){ throw std::range_error("no such key in cache"); } else { cache_list.splice( cache_list.begin(), cache_list, it -> second); } }