Calling a function with variable number of arguments with an array in C++ (like python's * operator)
我试图在C++中编写一个V8模块;在那里,函数接收数组中的变量数目。我想取这个数组,调用一个像
在Python中,我会这样做:
1 2 3 4 | def the_function(s, who, hmany): print s%(who, hmany) the_args = ["Hello, %s from the %d of us","world", 3] the_function(*the_args) |
如何在C++中实现?(我使用的是V8和node.js,所以可能在这些名称空间中有一个我不知道的函数或类)
这里有一种方法:
1 2 3 4 5 6 7 8 | void foo(const char *firstArg, ...) { va_list argList; va_start(argList, firstArg); vprintf(firstArg, argList); va_end(argList); } |
假设你正在尝试打印。基本上,va_list是关键,您可以使用它来检查参数,或者将它们传递给接受va_list的其他函数。