c++ - 迭代 C++ 可变参数模板类型列表

标签 c++ variadic-templates

假设我使用可变参数模板作为类型列表:

template <typename ... Types> struct tl {};
using my_list = tl<MyTypeA, MyTypeB, MyTypeC>;

现在我想为每种类型调用一个模板函数,例如:

myFunc<MyTypeA>();
myFunc<MyTypeB>();

我该如何实现这一目标?

最佳答案

使用 c++17,您可以使用 fold expressions .

template <typename ... Types>
void callMyFunc(my_list<Types...>) {
    (myFunc<Types>(), ...);
}

关于c++ - 迭代 C++ 可变参数模板类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65215959/

相关文章:

c++ - 什么时候使用 boost thread join 函数?

c++ - SecVerifyTransformCreate 内存泄漏?

c++ - 遍历两个列表,并将匹配值设置为 vector 的正确索引

c++ - 在完美转发函数中公开参数类型,避免代码重复

c++ - C++头文件中的函数定义

c++ - 关于数据对齐的困惑

C++ 模板部分特化 : Why cant I match the last type in variadic-template?

c++ - Variadic模板继承,成员函数重载

c++ - 根据模板类型生成 lambda 主体(调用可调用对象并返回)

c++ - 如果对可推导类型进行替换,可变参数模板类型推导会使编译器崩溃