C++ __VA_ARGS__ 在变参数模板类(Vardic template class) 中的使用
C++ 中 __VA_ARGS__ 宏的一个一般用法是实现可变参数的传递功能,例如
#define DEBUG_LOG(const char *fmt, ...) \
do { \
char dbgbuf[1024]; \
sprintf(dbgbuf, fmt, ##__VA_ARGS__); \
OutputDebugString(dbgbuf); \
} while(0)
int parse_paramters(int argc, char **argv);
int main(int argc, char **argv) {
if(argc != 3) {
DEBUG_LOG("%s: not enough paramters\n", argv[0]);
return -1;
}
if( !parse_paremeters(argc, argv) ) {
DEBUG_LOG("%s: invalid paramters: %s, %s\n", argv[0], argv[1], argv[2]);
return -1;
}