Estoy aprendiendo C ++ y estoy usando g ++ en Linux para practicar.
Quiero saber si las personas que trabajan como programadores usan el indicador pedagógico g ++ y también su importancia en el mundo real.
¿Qué pasa con otros compiladores, también permiten esto? ¿Se ha convertido esto en un estándar de facto?
Estoy interesado porque estoy leyendo C ++ Primer donde el autor señala que es ilegal usar expresiones no constantes como dimensión en la definición de matriz y g ++ por defecto lo permite. Y puede haber otras cosas que desconozco.

Respuestas:
Sí, absolutamente haz esto. De hecho, es necesario estudiar la página del manual y encienda más advertencias que
-pedanticy-Wallva a hacer.No, no hay un estándar. MSVC utiliza,
/W4por ejemplo.fuente
-Wall -Wextra -Werror -pedantic -std=c++0x:)-pedanticC ++, ya que el manual de GCC implica que solo está destinado a C, y he pasado a usarlo-std=c++14en nuevos proyectos.-Wall -Wextra -Werror -std=c++14:)-Werrorconvierte todas las advertencias en errores. Pero-pedantic-errorssolo comete errores porStandard ICO C++infracciones.Si bien no he programado C ++ durante bastante tiempo, le aconsejo que use esta bandera. Le ayuda a crear código compatible con los estándares y facilitará la vida de todos. AFAIK, la mayoría de los otros compiladores no son compatibles con las extensiones gcc / g ++.
Odio, por ejemplo, cuando no puedo compilar código solo porque el desarrollador original decidió codificar contra extensiones de compilador no estándar.
Apuesto a que una gran cantidad (digamos el 20%) de programas de Linux que se escribieron en C / C ++ no se compilará con nada más que gcc / g ++, lo que me pone un poco triste. Siempre adherirse a los estándares.
fuente
Personalmente uso:
-Wall -Wextra -Wshadow -Weffc ++ -Wstrict-aliasing -ansi -pedantic -Werror
Por lo tanto, activa una serie de advertencias, pero lo más importante es que trata todas las advertencias como errores (ya que la mayoría de las advertencias son errores lógicos en su pensamiento).
fuente
-Wunreachable-code -Wno-long-long-g -pg -fprofile-arcs -ftest-coverage-g -O0-O3Es muy esencial usar la
-pedanticbandera.Solo agregaría que con el estándar actual es aconsejable usar algo similar a:
Dónde:
-std=c++17le dice que se adhiera a la revisión del estándar C ++, publicado en 2017, puede leer más sobre esto aquí .-Wallle dice que:-Wextrale dice que habilite algunas advertencias más, aún no todas.-Werrorle dice que convierta todas las advertencias en errores.-Wpedantico simplemente-pedanticle dice que:-pedantic-errorsle dice que dé un error siempre que el estándar base (ver -Wpedantic) requiera un diagnóstico.Este conjunto generalmente es útil no solo para principiantes, ya que gradualmente aprenderán que cada advertencia tiene el potencial de provocar un error, sino también para un uso normal.
Todas las opciones de advertencia se describen en detalle aquí en la página GNU / GCC .
fuente