gpt4 book ai didi

c++ - 使用未引用的局部变量警告捕获异常

转载 作者:可可西里 更新时间:2023-11-01 18:35:44 27 4
gpt4 key购买 nike

我有以下代码:

try {
// do some stuff
}
catch(const my_exception_type& e) {
LOG("Exception %s", e.what());
throw;
}

问题是在调试构建中 LOG 被定义为 #define LOG(...) real_logger(...),但在发布构建中被定义作为 #define LOG(...)\\什么都不做

当然,当我在 Visual Studio 中编译我的发布代码时,我收到了 warning C4101: 'e' : unreferenced local variable

在不生成任何不必要的警告的情况下处理异常日志记录的最佳做法是什么?

附言
除了记录并重新抛出异常外,我什么都不做。

最佳答案

您可以通过将对象强制转换为 void 来将其标记为“已使用”。它对生成的机器码没有影响,但会抑制编译警告。

try {
// do some stuff
}
catch(const my_exception_type& e) {
(void)e;
LOG("Exception %s", e.what());
throw;
}

关于c++ - 使用未引用的局部变量警告捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24428146/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com