在<Effective C++>中,有一个条款是这样的:
现代的C++程序设计原则不推荐适用宏定义常量或函数宏,应该尽量少的使用 #define ,如果可能,用 const 变量或 inline 函数代替。
但在Debug程序的时候需要一些预定义宏,如__DATE__,__FILE__,__LINE__,__FUNCTION__等。请问面对这种情况,是否应该用inline来代替define呢。
如果需要 下面这种情况应该如何替代呢。
#define log_err(M, ...) fprintf(stderr, "[ERROR] (%s:%d: errno: %s) " M "\n", __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__)
明月笑刀无情
倚天杖