【发布时间】:2014-09-25 10:39:35
【问题描述】:
考虑以下代码:
class A {
A(int x) {
y_ = x;
}
void x() {
}
int y_;
};
int main() {
}
如果我使用 -Weverything 使用最新的 clang 编译它,它不会产生任何警告。但是如果我用带有 -Wall -Wshadow 的 g++ 编译它,它会产生
x.cpp: In constructor ‘A::A(int)’:
x.cpp:2:12: warning: declaration of ‘x’ shadows a member of 'this' [-Wshadow]
A(int x) {
^
为什么这两个会产生不同的警告?谁是对的?是bug吗?
【问题讨论】: