c++ - 使用范围保护时如何避免警告?

标签 c++ c++11 scopeguard folly

我正在使用 folly scope guard,它正在工作,但它会生成一条警告,指出该变量未被使用:

warning: unused variable ‘g’ [-Wunused-variable]

代码:

folly::ScopeGuard g = folly::makeGuard([&] {close(sock);});

如何避免这样的警告?

最佳答案

您可以将变量标记为未使用:

folly::ScopeGuard g [[gnu::unused]] = folly::makeGuard([&] {close(sock);});

或者将其转换为 void:

folly::ScopeGuard g = folly::makeGuard([&] {close(sock);});
(void)g;

在我看来,两者都不是很好,但至少这可以让您保留警告。

关于c++ - 使用范围保护时如何避免警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587076/

相关文章:

c++ - 如何使用 Arduino 去抖动位掩码读数? (不是按钮...)

c++ - 我应该从以下功能中选择什么

c++ - CString 成员函数 CompareNoCase 是否支持其他语言(非英语)?

c++ - 无需规则即可创建目标 .moc

C++:为什么这个简单的 Scope Guard 有效?

c++ - 如何检测一个方法是否是虚拟的?

c++ - 我可以和不可以专注于 std 命名空间吗?

c++ - 0.1 与 C++ 中的 0,1,为什么两者都不会导致错误?

c++ - 用于临时延长生命周期的 const 引用

c++ - 用于函数对和模板特化的 RAII 包装器