私は複数のストアドクラスのジェネリックキャッシュを必要とするプロジェクトに取り組んでいます。私の基底クラスは次のようになります。Variadicテンプレートクラス - 可変メンバー関数
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;
};
私は引数を受け入れないだろう関数を記述する必要がありますが、キャッシュオブジェクト上で、それを呼び出すことによって、それが反復的に保存されたすべてのマップのバリアントを横断う、と(不要な項目を削除する)アクションをperfrom 。
例:
I VarCache<A,B,C> cache
とT
はcache.prune_all_variants();
を呼び出すことによって
とA,B,C
の一つである方法prune<T>();
私はキャッシュが
prune<A>();
prune<B>();
prune<C>();
実行したいが、この可能ですか?
ありがとうございました すばらしいです :)。 – semtexzv