C++支不支持可变参数宏
比如我要写:
#define WRITE_LOG(LOG_TYPE,MESSAGE,...)\
CMyLog *p = CMyLog::GetInstance();\
p->WriteLog(LOG_TYPE,MESSAGE,__VA_ARGS__);
是否可以?
[解决办法]
http://msdn.microsoft.com/en-us/library/ms177415(v=vs.80)
[解决办法]
#define WRITE_LOG LogService::getInstance().write static void doWrite(char const* message, char const * logFile) { std::ofstream logStream(logFile, std::ios_base::app); if(logStream) { logStream << message << std::endl; } else { std::cerr << message << std::endl; } } void LogService::write(char const * format, ...) { static char buffer[512]; va_list args; va_start (args, format); vsprintf (buffer, format, args); doWrite (buffer, logFile_.c_str()); va_end (args); }