使用多参数包可变参数模板继承 class

Inheriting class with multi parameter pack variadic template

我有一个带有多个参数包的可变参数模板 class,像这样:

template <typename... Types>
struct TopicsList { };

template <typename... Topics>
class TheParent;

template <typename... OutputTopics, typename... InputTopics>
class TheParent<TopicsList<OutputTopics...>, TopicsList<InputTopics...>>
{
};

我正在尝试从这个 class 继承,像这样:

template <typename... Topics>
class TheChild;

template <typename... OutputTopics, typename... InputTopics>
class TheChild<TopicsList<OutputTopics...>, TopicsList<InputTopics...>>
    : public TheParent<OutputTopics..., InputTopics...>, public ::testing::Test
{
};

但我收到以下编译错误:

error: invalid use of incomplete type 'class {anonymous}::TheParent<TopicA, TopicB, TopicC>'
 class TheChild<TopicsList<OutputTopics...>, TopicsList<InputTopics...>>

如能提供任何线索,我们将不胜感激!

怎么样

template <typename... OutputTopics, typename... InputTopics>
class TheChild<TopicsList<OutputTopics...>, TopicsList<InputTopics...>>
    : public TheParent<TopicsList<OutputTopics...>, TopicsList<InputTopics...>>, public ::testing::Test
// ....................^^^^^^^^^^^...............^^^^^^^^^^^^^^..............^
{
};

?

我的意思是...如果你的 TheParent 声明只接收几个 TopicsList,你必须维护 TopicsList 包装器传递来自 TheChild 的参数至 TheParent.