Re[3]: Как передать (...) дальше
От: Кодт Россия  
Дата: 10.12.04 08:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Именно так задача и стоит. Пример с 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);
}
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.