相关疑难解决方法(0)

与[[maybe_unused]]结构化绑定

具有模式匹配的函数式语言(有时?)有可能忽略一些绑定值,但是使用C++ 17结构化绑定似乎没有办法(std :: ignore with structured bindings?).建议是使用虚拟名称,但随后我们会收到有关未使用变量的警告.

有了clang和gcc的最新元首,这就做了预期的事情,这很好用,

[[maybe_unused]] auto x =4 ; // fine, no warning
[[maybe_unused]] auto [a,dummyb,dummyc] = std::tuple<int,int,float>(1,1,1.0f); 
Run Code Online (Sandbox Code Playgroud)

但我也希望这会奏效:

auto [g,[[maybe_unused]]dummyh,[[maybe_unused]]dymmyi] =
      std::tuple<int,int,float>(1,1,1.0f);
Run Code Online (Sandbox Code Playgroud)

是否有一个特定的原因属性不能在这里使用?(在标准和技术上).gcc或clang都不接受这个.


编辑,收集支持状态:(感谢godbolt /编译器浏览器).它按预期工作(也可能更早):

  • gcc 8.0 trunk(g ++ 8.0.0 20171015实验)
  • 铿锵4.0.0
  • icc 18(未经测试,根据规格)

MSVC 17.3.5(和Visual Studio GUI)允许该属性,但它不适用于结构化绑定.错误报告

c++ c++17 structured-bindings

37
推荐指数
2
解决办法
4290
查看次数

标签 统计

c++ ×1

c++17 ×1

structured-bindings ×1