C++ 模板函数中的可变类型名

C++ 模板函数中的可变类型名,c++,templates,variadic-templates,variadic-functions,C++,Templates,Variadic Templates,Variadic Functions,我一直在玩弄可变模板有一段时间了,我发现了一些我想做的事情,但我不知道这是否可能 我试图实现的一个大致概念是一个模板类,它根据存储在其中的对象类型执行特定操作。我希望能够处理继承,这样一个类型“派生”类将包含在只处理“基”对象的操作中。我发现可变模板正是我所需要的,我只是不能让它们像我想要的那样工作 基本上,我想知道是否可以制作一个变量函数,该函数接受可变数量的类型名,而不是可变数量的参数 以下是我到目前为止的情况: template <typename T> void DoesNo

我一直在玩弄可变模板有一段时间了,我发现了一些我想做的事情,但我不知道这是否可能

我试图实现的一个大致概念是一个模板类,它根据存储在其中的对象类型执行特定操作。我希望能够处理继承,这样一个类型“派生”类将包含在只处理“基”对象的操作中。我发现可变模板正是我所需要的,我只是不能让它们像我想要的那样工作

基本上,我想知道是否可以制作一个变量函数,该函数接受可变数量的类型名,而不是可变数量的参数

以下是我到目前为止的情况:

template <typename T>
void DoesNotWork()
{
    //Do stuff
}

template <typename T, typename ...Args>
void DoesNotWork()
{
    //Do stuff

    DoesNotWork<Args...>();
} 
模板
void doesnowork()
{
//做事
}
模板
void doesnowork()
{
//做事
不工作();
} 
但是,由于两个函数具有相同数量的参数,因此会抛出“不明确的函数引用”错误。如果删除top函数,最后一个递归调用将尝试调用没有定义的“DoesNotWork()”


我该怎么做呢?或者这是不可能的?

Args
为空时,无法消除这两个函数之间的歧义

您需要的是:

template <typename T>
void DoesNotWork()
{
    //Do stuff
}

template <typename T1, typename T2, typename ...Args>
void DoesNotWork()
{
    //Do stuff

    DoesNotWork<T2, Args...>();
} 
模板
void doesnowork()
{
//做事
}
模板
void doesnowork()
{
//做事
不工作();
} 

谢谢!“这正是我所需要的。”朱比利熊,很高兴我能帮上忙。