24 explicit LruMap(size_t max_size,
const Hash& hash = Hash(),
const Equal& equal = Equal())
25 : impl_(max_size, hash, equal)
28 LruMap(LruMap&& lru)
noexcept =
default;
29 LruMap(
const LruMap& lru) =
delete;
30 LruMap& operator=(LruMap&& lru)
noexcept =
default;
31 LruMap& operator=(
const LruMap& lru) =
delete;
35 bool Put(
const T& key, U value) {
return impl_.Put(key, std::move(value)); }
40 template <
typename... Args>
41 U*
Emplace(
const T& key, Args&&... args) {
42 return impl_.Emplace(key, std::forward<Args>(args)...);
46 void Erase(
const T& key) { impl_.Erase(key); }
51 U*
Get(
const T& key) {
return impl_.Get(key); }
58 return impl_.GetTransparent(key);
63 U
GetOr(
const T& key,
const U& default_value) {
64 auto* ptr = impl_.Get(key);
77 void SetMaxSize(size_t new_max_size) {
return impl_.SetMaxSize(new_max_size); }
80 void Clear() {
return impl_.Clear(); }
83 template <
typename Function>
85 impl_.VisitAll(std::forward<Function>(func));
89 template <
typename Function>
91 impl_.VisitAll(std::forward<Function>(func));
94 size_t GetSize()
const {
return impl_.GetSize(); }
96 std::size_t GetCapacity()
const {
return impl_.GetCapacity(); }
99 impl::LruBase<T, U, Hash, Equal> impl_;