É sensato ignorar o aviso “-Wmissing-braces” do gcc / clang?
Considere o seguinte programa:
#include <array>
int main()
{
std::array<int, 1> x = { 0 }; // warning!
x = { { 0 } }; // no warning
return 0;
}
A primeira inicialização leva a avisos no gcc 4.7.2 ...
main.cpp:5:22: warning: unused variable ‘x’ [-Wunused-variable]
... e clangor 3.1
main.cpp:5:28: warning: suggest braces around initialization of subobject [-Wmissing-braces]
std::array<int, 1> x = { 0 };
No que diz respeito ao padrão, não deve haver diferença entre chaves duplas ou simples, pelo menos neste exemplo.
Existem duas maneiras de lidar com o aviso:
Apenas desligueCorrigir o código, então o compilador está felizO que você propõe? IMHO, a expressão dupla encaracolada parece um pouco feia. Por outro lado, o aviso pode detectar problemas reais em exemplos mais complicados. Você conhece um exemplo em que o aviso teria ajudado você?