gpt4 book ai didi

c++ - 关于类成员自初始化的警告

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:20 26 4
gpt4 key购买 nike

看看这段 C++ 代码:

class Foo
{
int a;

public: Foo(int b): a(a) {}
};

显然,开发人员打算使用 b 而不是 a 本身来初始化 a,这是一个很难发现的错误。

Clang++ 会警告这个可能的错误,而 GCC 不会,即使启用了额外的警告:

$ clang++ -c init.cpp 
init.cpp:5:27: warning: field is uninitialized when used here [-Wuninitialized]
public: Foo(int b): a(a) {}
^

$ g++ -Wall -Wuninitialized -Winit-self -c init.cpp
$

是否有可能为 g++ 启用相同的输出?

最佳答案

使用较新的 gcc :-) 对我来说似乎工作正常:

stieber@gatekeeper:~$ g++ -Wall -Wuninitialized -Winit-self -c Test.cpp
Test.cpp: In constructor ‘Foo::Foo(int)’:
Test.cpp:5:9: warning: ‘Foo::a’ is initialized with itself [-Wuninitialized]

stieber@gatekeeper:~$ gcc --version
gcc (Debian 4.7.1-2) 4.7.1

关于c++ - 关于类成员自初始化的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com