Взгляните на этот фрагмент кода C++:
class Foo
{
int a;
public: Foo(int b): a(a) {}
};
Очевидно, разработчик имел в виду инициализировать a
с помощью b
, а не самого 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++?