From 14d82ff67eab5d94b69fb38ea6a0bc634674245c Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 26 Jan 2024 17:56:52 +0000 Subject: Remove the generic cache completely --- lib/cache.cpp | 1 - lib/cache.h | 39 --------------------------------------- 2 files changed, 40 deletions(-) delete mode 100644 lib/cache.cpp delete mode 100644 lib/cache.h (limited to 'lib') diff --git a/lib/cache.cpp b/lib/cache.cpp deleted file mode 100644 index 05b26b0..0000000 --- a/lib/cache.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "cache.h" diff --git a/lib/cache.h b/lib/cache.h deleted file mode 100644 index f5fd227..0000000 --- a/lib/cache.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#include "special_members.h" -#include -#include -#include -#include - -template class Cache { -public: - using Ptr = std::shared_ptr; - using Key = std::tuple; - - Cache() = default; - virtual ~Cache() = default; - DEFAULT_MOVE(Cache); - NO_COPY(Cache); - - [[nodiscard]] Ptr - get(const KeyParts &... keyparts) - { - auto key = std::tie(keyparts...); - if (auto e = cached.find(key); e != cached.end()) { - return e->second; - } - return cached.emplace(key, construct(keyparts...)).first->second; - } - - [[nodiscard]] virtual Ptr - construct(const KeyParts &... keyparts) const - { - return std::make_shared(keyparts...); - } - -private: - std::map> cached; -}; - -// IWYU pragma: no_forward_declare Cache -- cgit v1.2.3