尝试确定以下 C 风格代码的“现代”实现:
#define logError(...) log(__FILE__, __LINE__, __VA_ARGS__)
是否可以使用不依赖于 #define
的可变参数模板或类似的东西来捕获它?
所需用例:
logError( "Oh no! An error occurred!" );
__FILE__
和 __LINE__
是在后台捕获的,但反射(reflect)了调用 logError
的文件名和行号。
最佳答案
宏确实是您唯一的选择,至少在 std::source_location
之前是这样。使其成为标准并满足您的愿望。
关于c++ - 在没有 #define 的情况下捕获 __LINE__ 和 __FILE__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36851551/