Здравствуйте, Аноним, Вы писали:
А>Именно так задача и стоит. Пример с printf-ом просто первое что пришло в голову. Функция должна принимать именно (...), а не va_list.
А>А можно ли обойтись без макросов, а именно функцией, которая просто транзитом передает набор аргументов дальше (ну там делает еще свои дела предварительно)?
Только через хак.
Или, если ты знаешь, что там не более N параметров и типы их известны на стадии компиляции — то запихать их все (возможно, с пустышками).
prepare_ints(int n, ...)
{
assert(n>0 && n<10);
int data[10];
va_list args; va_start(args,n);
for(int i=0; i<min(n,10); ++i) data[i] = va_arg(args,int);
va_end(args);
send_ints(n, data[0]*1, data[1]*2, ....., data[9]*10);
}