将BOOST_LOG_SEV宏包装到另一个宏

Wraping BOOST_LOG_SEV macro to another macro

本文关键字:包装 另一个 SEV BOOST LOG      更新时间:2023-10-16

尝试将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 '('  

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

你只需要删除宏参数前的空格,即:

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