Имею класс-шаблон реализующий матрицу (в ячейках могут быть разного типа данные).
для заполнения матрицы используется функция:
void setItems(int _row, int _col, ...){
fieldInitialization(_row, _col);
int argumentNumber = _row * _col;
va_list arguments;
va_start(arguments, argumentNumber);
for (int i = 0 ; i < _row ; i++){
for (int j = 0 ; j < _col ; j++){
tab[i][j] = va_arg(arguments, T);
}
}
va_end(arguments);
}
Компилятор предупреждает:
second parameter of ‘va_start’ not last named argument [enabled by default]
и
- ‘char’ is promoted to ‘int’ when passed through ‘...’ [enabled by default]
- (so you should pass ‘int’ not ‘char’ to ‘va_arg’)
- if this code is reached, the program will abort
При заполнении int'ами всё ок,
как только перехожу на char программа останавливается как и предупреждал компилятор :(
Прошу подсказки/помощи как реализовать выемку аргументов зарание не зная тип.
p.s. задание учебное, потому нельзя, к примеру, воспользоватся специализацией.