假设我有一个带有类型模板参数包的类,例如
template<typename... types>
class Foo {};
有什么方法可以在 Foo 类中定义方法,例如
void bar(T x);
以及参数包中每个类型 T 的重载 types
?
您可以让
Foo
继承每个基地 void bar(T x)
:
template<typename T>
struct FooBase {
void bar(T x);
};
template<typename... types>
struct Foo : FooBase<types>... {
using FooBase<types>::bar...;
};