c++ - 是否可以将解压缩元组的一个元素标记为未使用
问题描述
本题与c++17及以上相关,引入了[[maybe_unused]]
属性。
我可以maybe_unused
像这样应用到整个未打包的元组:
for ([[maybe_unused]] auto &[key, weak] : connection_cache_)
{
if (auto locked = lock(weak); locked)
{
locked->cancel();
}
}
但是,标记未使用的key
不起作用(至少在 gcc-8 上):
for (auto &[ [[maybe_unused]] key, weak] : connection_cache_)
{
if (auto locked = lock(weak); locked)
{
locked->cancel();
}
}
这让我可以选择不使用属性或使用 no-op 来确保在编译时没有警告,-Wall -Wextra -pedantic
这是我的代码库的标准:
for (auto &[key, weak] : connection_cache_)
{
boost::ignore_unused(key);
if (auto locked = lock(weak); locked)
{
locked->cancel();
}
}
我没有选择吗?
解决方案
推荐阅读
- c++ - 调用 'unordered_set< 向量的隐式删除的默认构造函数
>' - jquery - 过滤表的总和
- node.js - 如何在 NodeJS SDK 中使用 transloadit addStream() 函数?
- node.js - mongoDB express-session中的所有活动会话
- php - PHP Web套接字未在SSL中连接
- java - 如何从 android Java 的改造中访问 arralist 响应的子数组列表?
- xcode - 如何调试 SwiftUI AttributeGraph 循环警告?
- php - 我想使用 PHP 和 mysql 禁用 html 日期选择器(输入类型 =“日期”)的某些未来日期
- javascript - 在导出的 pdf 中包含作为 html 或图像的 highcharts
- docker - 对 gRPC 架构的担忧(gRPC、nginx、docker)