У меня есть некоторые структуры и перечисления, которые выглядят следующим образом:
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))
}
Не могли бы вы помочь мне привести в порядок различные шаблоны?