2015-07-22 21 views

Odpowiedz

12
+0

To ostrzeżenie nie powinny być tłumione. Jeśli kod jest zgodny z C++ 11, zalecana jest lista inicjalizująca za pomocą '{{..}}' zamiast pojedynczego '{..}'. Jest w tym cel i dlatego ostrzeżenie nie powinno być stłumione zamiast ulepszania kodu, który może powodować problemy później. –

+0

@SohailSi Może to być użyteczne, aby zapobiec pomyłkom między obiektami podrzędnymi, które mają zostać zainicjalizowane, a inicjowanym obiektem, ale jest to niepoprawne w przypadkach takich jak 'std :: array', gdzie klasa otaczająca ma zastąpić jedyne dane tablicy członek. Egzekwowanie tego ostrzeżenia w takich przypadkach powoduje wyciek szczegółów implementacji. Zanim będzie można go osobno stłumić za pomocą nieco przenośnych środków (np. Atrybutów), domyślnie nie jest domyślnie włączone. – FrankHB

Powiązane problemy