Ist es ratsam, die Warnung von gcc / clang zu ignorieren?

Betrachten Sie das folgende Programm:

#include <array>

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

Die erste Initialisierung führt zu Warnungen auf gcc 4.7.2 ...

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

... und klingelte 3.1

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

Was den Standard betrifft, sollte es zumindest in diesem Beispiel keinen Unterschied zwischen doppelten oder einfachen geschweiften Klammern geben.

Es gibt zwei Möglichkeiten, mit der Warnung umzugehen:

Schalte es einfach ausKorrigieren Sie den Code, damit der Compiler zufrieden ist

Was schlägst du vor? IMHO sieht der doppelte lockige Ausdruck etwas hässlich aus. Andererseits kann die Warnung in komplizierteren Beispielen echte Probleme erkennen. Kennen Sie ein Beispiel, bei dem Ihnen die Warnung geholfen hätte?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage