Ich schreibe eine C++ - Anwendung, die eine C-Bibliothek verwendet, die eine Schwanz-aufgefüllte Struktur in einem ihrer Header definiert. Ohne zu sehr ins Detail zu gehen, sieht es etwas wie folgt aus:Wie behandelt man Warnungen über Tail-gefüllte Arrays in C++?
struct MyStruct {
// ... other members
// The last member, a tail-padding array
MyType myBuffer[];
}
Ich benutze -Wall -Wextra -Wpedantic -Werror
mit g++
und -std=c++0x
.
Leider g++
gibt mir eine Warnung über das Array:
error: ISO C++ forbids zero-size array 'myBuffer' [-Wpedantic]
Was ist der richtige Weg, damit umzugehen?
Ich weiß, dass ich die Warnung selbst durch Zugabe eines pragma
zu dem Header unterdrücken kann:
#pragma GCC diagnostic ignored "-Wpedantic"
Aber das fühlt sich nicht richtig. Was schlägst du vor?
Es ist C noch nicht gültig ++. Wie wäre es, C-Code als C-Code zu kompilieren? – juanchopanza