【发布时间】:2020-12-15 01:07:25
【问题描述】:
我已经定义了一个这样的类型列表:
template <typename ... Types> struct typelist {};
using my_list = typelist<int, double, bool, float>;
现在我有一个函数模板,例如
template<typename T>
void foo() {
std::cout << typeid(T).name() << std::endl;
}
并希望为类型列表中的每种类型调用它:
foo<int>();
foo<double>();
foo<bool>();
foo<float>();
我试图找到一种递归方式来解决这个问题,但我无法为所需的 foo 函数定义正确的(可能是嵌套的)可变参数模板。你有什么提示可以巧妙地解决这个问题吗?
【问题讨论】:
-
typeid是运算符,没有std::typeid -
谢谢,我刚刚意识到并纠正了它
标签: c++ c++14 variadic-templates