É bastante essencial usar a -pedantic
bandeira.
Gostaria apenas de acrescentar que, com o padrão atual, é aconselhável usar algo semelhante a:
-std=c++17 -Wall -Wextra -Werror -Wpedantic -pedantic-errors
Onde:
-std=c++17
diz para aderir à revisão do padrão C ++, publicada em 2017, você pode ler mais sobre isso aqui .
-Wall
diz para:
Habilite todos os avisos sobre construções que alguns usuários consideram questionáveis e fáceis de evitar (ou modificar para impedir o aviso), mesmo em conjunto com macros, ou seja, algum conjunto de avisos.
-Wextra
diz para habilitar mais alguns avisos, ainda não todos.
-Werror
diz para fazer todos os avisos em erros.
-Wpedantic
ou apenas -pedantic
diz para:
Emita todos os avisos exigidos pelo rigoroso ISO C e ISO C ++; rejeite todos os programas que usam extensões proibidas e alguns outros programas que não seguem o ISO C e ISO C ++.
-pedantic-errors
diz para cometer um erro sempre que o padrão básico (consulte -Wpedantic) exigir um diagnóstico.
Esse conjunto geralmente é útil não apenas para iniciantes, pois eles aprendem gradualmente que cada aviso tem potencial para resultar em erro, mas também para uso normal.
Todas as opções de aviso são descritas em detalhes aqui na página GNU / GCC .