可变参数模板类-可变参数成员函数

semtexzv

我正在从事需要对多个存储类进行通用缓存的项目。我的基类如下所示:

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;
};

我需要编写不接受任何参数的函数,但是通过在缓存对象上调用它,它将迭代遍历所有存储的map变体和perfrom动作(删除不需要的项)。

例子:

我有VarCache<A,B,C> cache和方法prune<T>();在哪里T之一A,B,C

并通过调用cache.prune_all_variants();我希望缓存执行

prune<A>();
prune<B>();
prune<C>();

这可能吗 ?

格子呢骆驼

您可以使用一些技巧来为参数包的每个元素调用函数。这是一个选择:

void prune_all_variants() {
    (void)std::initializer_list<int> {
        (prune<Types>(), 0)...  
    };
}

在C ++ 17中,可以使用fold表达式将其简化为以下内容

void prune_all_variants() {
    (prune<Types>(), ...);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

std :: function到可变参数成员函数,然后绑定可变参数模板参数

来自分类Dev

可变参数模板类的可变参数模板

来自分类Dev

可变参数模板类的可变参数模板

来自分类Dev

嵌套类中的可变参数模板

来自分类Dev

如何扩展可变参数模板类

来自分类Dev

菊花链可变参数模板类

来自分类Dev

可变参数模板类中的派生(虚拟)函数参数

来自分类Dev

可变参数模板对

来自分类Dev

以成员函数指针为参数的可变参数模板

来自分类Dev

完美转发可变参数模板参数到成员函数

来自分类Dev

调用类内的函数的C ++ 11可变参数模板

来自分类Dev

将成员函数传递给可变参数模板函数

来自分类Dev

使用成员函数调用可变参数模板函数

来自分类Dev

可变参数模板成员函数的部分专业化

来自分类Dev

类型擦除和可变参数模板化成员函数

来自分类Dev

C ++使用可变参数模板绑定成员函数

来自分类Dev

折叠可变参数模板检查成员函数的存在

来自分类Dev

专业化可变参数模板成员函数

来自分类Dev

在可变参数模板类的构造函数中初始化元组成员

来自分类Dev

从可变参数模板类中提取类型以实现成员函数重载

来自分类Dev

С++可变参数模板:实现可变参数

来自分类Dev

以可变参数类模板作为函数调用参数的函数模板参数推导

来自分类Dev

可变参数模板类参数容器实例化

来自分类Dev

如何从可变参数模板参数的嵌套类中派生?

来自分类Dev

可变参数模板类参数容器实例化

来自分类Dev

可变参数模板与类模板的专业化

来自分类Dev

模板类中的可变参数模板构造器规范

来自分类Dev

可变参数模板与类模板的专业化

来自分类Dev

可变参数类参数成员变量的异构存储

Related 相关文章

热门标签

归档