Надеюсь, что сообщество stackoverflow поможет мне с этой проблемой. Я хотел бы иметь что-то вроде следующего компилироватьСостав шаблона шаблонов Variadic
template <typename A>
void VARIADIC_TEMPLATE_FUNCTION(A* tptr)
{
//Do nothing
}
template <typename A, typename B, typename... C>
void VARIADIC_TEMPLATE_FUNCTION(A* tptr)
{
// Do stuff here with typename B and tptr (not included)
VARIADIC_TEMPLATE_FUNCTION<A,C...>(tptr);
}
ясно, что это не работает, подписи двух функций конфликта.
Я пытался исправить это, передав некоторые вариационные аргументы, но ничего не работает. Я не против передачи «поддельных» переменных, но предпочитаю не делать этого.
Вызывающий бы сделать что-то подобное (например):
ClassP* ptr;
VARIADIC_TEMPLATE_FUNCTION<ClassP, ClassA, ClassB, ClassC, ClassD>(ptr);
И в чем проблема с тем, что у вас есть прямо сейчас? Для вызова функции, который вы показали, вторая перегрузка должна быть вызвана (рекурсивно) 4 раза, а затем первая перегрузка один раз. – Praetorian
Он компилируется и работает безупречно –
Возможно, вам нужно включить поддержку C++ 11. Какой компилятор вы используете? –