将 BOOST_LOG_SEV 宏包装到另一个宏

Wraping BOOST_LOG_SEV macro to another macro

正在尝试将 BOOST_LOG_SEV 宏包装到 LOG_SS_BOOST :

#define LOG_SS_BOOST (value) do { BOOST_LOG_SEV (lg,boost::log::trivial::debug)<<value; } while (0)

但是在编译过程中出现错误:

Error   58  error C2065: 'value' : undeclared identifier    
Error   59  error C2143: syntax error : missing ';' before 'do' 
Error   60  error C2065: 'value' : undeclared identifier    
Error   61  error C2143: syntax error : missing ';' before '('  

哪里出了问题,如何正确包装?

你只需要在宏参数之前删除 space,即:

#define LOG_SS_BOOST(value) do { BOOST_LOG_SEV (lg,boost::log::trivial::debug)<<value; } while (0)