1

¿Qué estándar de C++ usa tu compilador?

C++ está estandarizado por el grupo de trabajo de la ISO denominado JTC1/SC22/WG21. Hasta la fecha, ha publicado 6 revisiones del estándar de C++ y está trabajando en la siguiente revisión, C++23.

Si deseas conocer el estándar que usa tu compilador por defecto, puedes probar el siguiente código:

#include<iostream>intmain(){
    if (__cplusplus == 202002L)
        std::cout << "C++20";
    elseif (__cplusplus == 201703L)
        std::cout << "C++17";
    elseif (__cplusplus == 201402L)
        std::cout << "C++14";
    elseif (__cplusplus == 201103L)
        std::cout << "C++11";
    elseif (__cplusplus == 199711L)
        std::cout << "C++98";
    elsestd::cout << "pre-standard C++";
}

Guárdalo en un archivo con extensión .cpp. Para compilar y ejecutar el programa en macOS, que usa el compilador Apple Clang, puedes escribir en la terminal:

clang++ -stdlib=libc++ test.cpp
./a.out

Preguntas

Mencionaste 6 revisiones pero solo se imprimen 5, ¿cuál es la revisión faltante?

La revisión faltante es C++03 del año 2003. La macro de preprocesador __cplusplus devuelve el mismo valor 199711L para los estándares C++98 y C++03.

¿Cuál es la importancia de la revisión del estándar al momento compilar?

Cada estándar provee nuevas características al lenguaje C++. Por ejemplo, si deseas usar funciones anónimas (lambdas) deberías usar como mínimo la revisión C++11.

¿Por qué no usas using namespace std?

Es considerada una mala práctica según las pautas de C++. Mas información aquí.

Escribe tu comentario
+ 2