我有一些结构和枚举,如下所示:
enum NUM
{
A = 0,
B,
C
};
struct X{};
struct Y{};
我想为一个看起来像这样的函数创建一个可变参数模板:
template<NUM n, typename...Args>
void func(const Args&...a);
在这种情况下,我想专门化模板功能func:
如果NUM::A定义func为
template<> void func<A, X>(const X& x)
{
var.emplace_back(std::make_shared<SomeClass>(x));
}
如果NUM::B定义func为
template<> void func<B,X,Y>(const X& x, const Y& y)
{
var.emplace_back(std::make_shared<SomeOtherClass>(x,y))
}
你能帮我用可变参数模板整理一下吗?