【发布时间】:2019-09-23 06:19:21
【问题描述】:
更新:gcc 可以工作,但不能正常工作
用 C++17 编译
GCC/Clang -Wshadow 会在影子局部变量发生时发出警告,但对于结构化绑定,此标志不起作用。在这种情况下如何暴露警告?
std::tuple<int, int> yy = {-1, -2};
int x = 1;
{
// int x = 2; // will warn -Wshadow
auto [x, y] = yy; // will not warn even if compile with -weverything
}
【问题讨论】:
-
你的编译字符串是什么样的?您正在使用
-std=c++17(或更高版本)?由于您可以使用结构化绑定中的x,因此我预计会出现阴影警告。请提供A Minimal, Complete, and Verifiable Example (MCVE)。
标签: c++ gcc-warning stdtuple