Вызов функции с переменным числом аргументов с массивом в C ++ (например, оператор python *) - PullRequest
1 голос
/ 08 сентября 2010

Я пытаюсь написать модуль v8 на C ++;там функции получают переменное число аргументов в массиве.Я хочу взять этот массив и вызвать функцию типа gettext и printf, которая получает отформатированную строку и необходимые аргументы.Дело в том, как взять массив и отправить элементы в качестве аргументов одной из этих функций?

В Python я бы сделал что-то вроде этого:что будет достигнуто в C ++?(Я использую v8 и node.js, поэтому, возможно, где-то в этих пространствах имен есть функция или класс, о которых я не знаю)

1 Ответ

2 голосов
/ 08 сентября 2010

Вот один из способов:

void foo(const char *firstArg, ...) {
    va_list argList;
    va_start(argList, firstArg);

    vprintf(firstArg, argList);

    va_end(argList);
}

Предполагая, что вы пытаетесь сделать printf. По сути, ключом является va_list, и вы можете использовать его для проверки аргументов или передачи их другим функциям, которые принимают va_list.

...