Skompilowałem kod z GCC z włączonymi -Wall
i -Wextra
. Ten kod generuje ostrzeżenie:Czy powinienem się martwić o inicjatory Wmissing-field i inicjowanie agregacji w C++ 17?
struct A { A(int) {} };
struct B {};
struct C : A, B {};
int main() {
(void) C{1};
}
main.cpp: In function 'int main()': main.cpp:11:15: warning: missing initializer for member 'C::<anonymous>' [-Wmissing-field-initializers] (void) C{1}; ^
Byłbym zaniepokojony, że? Czy jest to błąd w GCC dla wyprowadzania tego ostrzeżenia? Wygląda na to, że nie mam pola do zainicjowania i żadnych brakujących parametrów.
No cóż ... Mam tu do czynienia z generycznym kodem, więc trudno byłoby mi dodać puste parametry :( –
@GuillaumeRacicot Czy to może pomóc w poznaniu spodziewanej liczby inicjalizatorów? Można je policzyć za pomocą SFINAE. –