我正在研究需要多個存儲類的通用緩存的項目。我的基類看起來是這樣的:可變參數模板類 - 可變參數成員函數
template<typename ... Types>
class VarCache{
template<typename T>
using item_type = shared_ptr<holder<T>>;
template<typename T>
using map_type = map<int64_t,item_type <T>>;
public:
std::tuple<map_type<Types>...> caches;
};
我需要寫功能,將不接受任何參數,但通過調用它的緩存對象,它會反覆地遍歷所有存儲的地圖變種,並藉此在行動(刪除不需要的項目) 。
例子:
我有VarCache<A,B,C> cache
和方法prune<T>();
其中T
是A,B,C
和一個通過調用cache.prune_all_variants();
我想緩存執行
prune<A>();
prune<B>();
prune<C>();
這可能嗎?
謝謝,作品很棒:)。 – semtexzv