When I read the source code of google glog, I found the following macro confusing to me:
#define LOG_IF(severity, condition) \
static_cast<void>(0), \
!(condition) ? (void) 0 : google::LogMessageVoidify() & LOG(severity)
- What's the meaning of
static_cast<void>(0),
? - What's the meaning of
&
in the third line? - What does the result look like if we expand this macro?
I'm new to c++. Thank you all for the help!