简短版本: 如何将...
变量参数函数中表示的内容传递给另一个函数,而无需先将其解析为va_list
?
长版:
以下是我的一类中的两个功能。我想提请您注意,每个函数的前四行是相同的。我在这个类中有六个其他函数,前四行相同。
void cyclOps::Logger::warn(char* szFile, char* szFunction, int iLine, char* szFormat, ...) {
va_list vaArguments;
va_start(vaArguments, szFormat);
char szOutput[10000];
_vsnprintf_s(szOutput, CYCLOPSSIZEOF(szOutput), _TRUNCATE, szFormat, vaArguments);
this->log("WARNING: %s [%s - %s(%d)]", szOutput, szFile, szFunction, iLine);
}
void cyclOps::Logger::info(char* szFormat, ...) {
va_list vaArguments;
va_start(vaArguments, szFormat);
char szOutput[10000];
_vsnprintf_s(szOutput, CYCLOPSSIZEOF(szOutput), _TRUNCATE, szFormat, vaArguments);
this->log("INFO: %s", szOutput);
}
我想将这四行相同的行放在一个名为的函数中summarizeVariableArguments()
,并称它为这样的......
void cyclOps::Logger::info(char* szFormat, ...) {
std::string strOutput = this->summarizeVariableArguments(/* TBD */);
this->log("INFO: %s", strOutput.c_str());
}
...其中的内容strOutput
将与szOutput
前两个函数中的内容相同。但是如何将...
参数传递给另一个函数?