Задание более обширное, нужно реализавать матрицу-класс-шаблон с возможностью добавления в ячейки данных любого типа (в том числе и собственного класса). Дан уже написанный main.cpp и его изменять нельзя, а уже в нём между прочими вариантами наполнения матрицы есть вариант по которому используется ф-ция setItems (как понимаю для обучения приёму переменного кол-ва аргументов).
А можно ли в run-time узнавать какого типа аргументы пришли в ф-цию?
Т.е. использовать условные операторы и в зависимости от пришедшего типа использовать предложенные вами:
char c = (char) va_arg(argptr, int);
float f = (float) va_arg(argptr, double);