我有一个用 C++ 编写的日志系统,上面写着这种类型的函数:
void processMessages();
void DEBUG_MSG(const std::string& appender,const char* msg, ...);
void INFO_MSG(const std::string& appender,const char* msg, ...);
void WARNING_MSG(const std::string& appender, const char* msg, ...);
void ERROR_MSG(const std::string& appender, const char* msg, ...);
void FATAL_MSG(const std::string& appender, const char* msg, ...);
我想通过 C++ 中的宏禁用。我读过这个帖子:Disable functions using MACROS but
#ifdef GLOG_SILENCE
#define processMessages (void)sizeof
#define DEBUG_MSG (void)sizeof
#define INFO_MSG (void)sizeof
#define WARNING_MSG (void)sizeof
#define ERROR_MSG (void)sizeof
#define FATAL_MSG (void)sizeof
#else //GLOG_SILENCE
void processMessages();
void DEBUG_MSG(const std::string& appender,const char* msg, ...);
void INFO_MSG(const std::string& appender,const char* msg, ...);
void WARNING_MSG(const std::string& appender, const char* msg, ...);
void ERROR_MSG(const std::string& appender, const char* msg, ...);
void FATAL_MSG(const std::string& appender, const char* msg, ...);
#endif //GLOG_SILENCE
不能正常工作。我不断收到以下错误:
在 ../src/test_core.cpp:2 包含的文件中:
../src/test_Log.h: In member function ‘virtual void LogTestFixtureTest_defining_SILENCE_macro_avoids_write_and_processing_activity_from_log_Test::TestBody()’: ../src/test_Log.h:63: error: expected unqualified-id before ‘(’ token ../src/test_Log.h:63: error: expected primary-expression before ‘void’ ../src/test_Log.h:63: error: expected ‘;’ before ‘sizeof’ ../src/test_Log.h:64: error: expected unqualified-id before ‘(’ token ../src/test_Log.h:64: error: expected primary-expression before ‘void’ ../src/test_Log.h:64: error: expected ‘;’ before ‘sizeof’
我怀疑这个问题与 Log 是一个类的事实有关,但我不知道该怎么做。一些帮助?