是否可以为模板参数包的每个元素定义一个方法重载?

问题描述 投票:0回答:1

假设我有一个带有类型模板参数包的类,例如

template<typename... types>
class Foo {};

有什么方法可以在 Foo 类中定义方法,例如

void bar(T x);
以及参数包中每个类型 T 的重载
types

c++ overloading c++20 parameter-pack
1个回答
0
投票

您可以让

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...;
};
© www.soinside.com 2019 - 2024. All rights reserved.