in < Effective CPP >, there is a clause like this:
Modern CPP programming principles do not recommend the application of macro definition constants or function macros. You should use-sharpdefine as little as possible and, if possible, use const variables or inline functions instead.
but in the Debug program, you need some predefined macros, such as _ _ DATE__,__FILE__,__LINE__,__FUNCTION__, etc. In the face of this situation, should inline be used instead of define?
how to replace the following if needed.
-sharpdefine log_err(M, ...) fprintf(stderr, "[ERROR] (%s:%d: errno: %s) " M "\n", __FILE__, __LINE__, clean_errno(), -sharp-sharp__VA_ARGS__)