Czy mądrze jest ignorować ostrzeżenie „-Wmissing-braces” gcc / clang?

Rozważmy następujący program:

#include <array>

int main()
{
  std::array<int, 1> x = { 0 }; // warning!
  x = { { 0 } }; // no warning
  return 0;
}

Pierwsza inicjalizacja prowadzi do ostrzeżeń na gcc 4.7.2 ...

main.cpp:5:22: warning: unused variable ‘x’ [-Wunused-variable]

... i brzęk 3.1

main.cpp:5:28: warning: suggest braces around initialization of subobject [-Wmissing-braces]
  std::array<int, 1> x = { 0 };

Jeśli chodzi o standard, nie powinno być różnicy między podwójnymi lub pojedynczymi nawiasami klamrowymi, przynajmniej w tym przykładzie.

Istnieją dwa sposoby radzenia sobie z ostrzeżeniem:

Wyłącz toNapraw kod, aby kompilator był szczęśliwy

Co proponujesz? IMHO, podwójne kręcone wyrażenie wygląda nieco brzydko. Z drugiej strony ostrzeżenie może wykryć rzeczywiste problemy w bardziej skomplikowanych przykładach. Czy znasz przykład, w którym ostrzeżenie by ci pomogło?

questionAnswers(4)

yourAnswerToTheQuestion