Dopo aver scritto una risposta a this question che visualizza la soluzione in fase di compilazione con un errore, mi chiedevo se fosse possibile ottenere un avviso e completare la compilazione (come è effettivamente specificato nella domanda).Avvisi che verranno costantemente attivati su diversi compilatori?
Mentre la diagnostica in generale dipende dal compilatore, è piuttosto ovvio per alcuni codici che un errore venga attivato (come l'accesso a un membro inesistente o il tentativo di creare un'istanza di un oggetto di tipo incompleto).
Lo stesso non si può dire per gli avvertimenti, poiché questi tendono a differire molto tra i compilatori. Anche se è ragionevole presumere che gli avvertimenti attivati con GCC verranno attivati anche con Clang, lo stesso non può essere detto per Visual C++.
Domanda:
Quali avvisi, se presenti, verranno attivati in modo coerente su tutti e tre i compilatori menzionati?
/W3
del VC++ e -Wall
su GCC & Clang può presumere.
Si noti che questo non è solo utile per questa domanda, ma può essere utile per l'attivazione di un avviso per i messaggi definiti dall'utente pure.
Perché si usa '/ W3' su MSVC mentre si utilizza' -Wall' su GCC/Clang? MSVC supporta '/ W4' e'/Wall' come livelli di avviso aggiuntivi. –
@Cody: li considero l'impostazione "predefinita" per i compilatori. Non voglio dover modificare il livello di avviso per visualizzare l'avviso. '/ W3' è l'attuale valore predefinito in Visual Studio e' -Wall' può essere visto anche come predefinito. – Xeo