stdio.h no estándar en C ++?

Sé que la mayoría de los comstackdores permiten ambos:

#include  

//y

 #include  

Pero alguien argumentó que en realidad no es C ++ estándar.

¿es eso cierto?

stdio.h es estándar, pero desaprobado. Siempre prefiero cstdio en C ++.

[n3290: C.3.1/1]: para compatibilidad con la biblioteca Standard C, la biblioteca estándar de C ++ proporciona los 18 encabezados C (D.5), pero su uso está obsoleto en C ++.

[n3290: D.5/3]: [ Ejemplo: el encabezado seguridad proporciona sus declaraciones y definiciones dentro del espacio de nombres std . También puede proporcionar estos nombres dentro del espacio de nombres global. El encabezado seguridad proporciona las mismas declaraciones y definiciones dentro del espacio de nombres global, de forma muy similar al estándar C. También puede proporcionar estos nombres dentro del espacio de nombres std . -Final ejemplo ]

No es cierto, porque el objective principal de C ++ es la compatibilidad con versiones anteriores con C. La única diferencia es que para

 #include  

todas las funciones están en el std nombres std

Los encabezados estándar C se incluyen en la biblioteca estándar de C ++ para compatibilidad.

La diferencia es que los identificadores en los encabezados correspondientes de C ++ deben estar (también) en el espacio de nombres std, mientras que los identificadores en los encabezados C deben (también) estar disponibles en el espacio de nombres global.

Además, los encabezados agregan sobrecargas para funciones como abs , pow , etc.

Además, los encabezados C ++ reemplazan algunas macros de comparación / clasificación C con funciones sobrecargadas.

La biblioteca estándar de C ++ contiene explícitamente la biblioteca estándar de C, por lo que es una parte totalmente legítima de C ++. Y si está hablando de usar #include en código C ++, entonces no debería hacer eso, porque esa es la syntax C, en código C ++, debe usar siempre cstdio

    Intereting Posts