tipos sirve que programacion para listado librerias libreria lenguaje historia evolucion estandar ejemplos dev definicion datos clases caracteristicas biblioteca c++ c standards c++-faq

programacion - para que sirve c++



¿Dónde encuentro los documentos estándar C o C++ actuales? (12)

Para muchas preguntas, la respuesta parece encontrarse en "el estándar". Sin embargo, ¿dónde encontramos eso? Preferiblemente en línea.

El googlear a veces puede parecer inútil, de nuevo especialmente para los estándares C, ya que se ahogan en la avalancha de discusiones en los foros de programación.

Para comenzar, ya que estos son los que estoy buscando en este momento, ¿dónde hay buenos recursos en línea para:

  • C89
  • C99
  • C11
  • C ++ 98
  • C ++ 03
  • C ++ 11
  • C ++ 14

Versiones en PDF de la norma.

A partir del 1 de septiembre de 2014, las mejores ubicaciones por precio para los documentos de estándares C y C ++ en PDF son:

Por lo general, no se pueden obtener revisiones antiguas de un estándar (ningún estándar) directamente de los organismos de estándares poco después de que se publique una nueva edición del estándar. Por lo tanto, las normas para C89, C90, C99, C ++ 98, C ++ 03 serán difíciles de encontrar para la compra de un organismo de normas. Si necesita una revisión anterior de un estándar, marque Techstreet como una posible fuente. Por ejemplo, todavía puede proporcionar la versión canadiense CAN / CSA-ISO / IEC 9899: 1990 estándar en PDF, por una tarifa.

Imprimir versiones de la norma.

Las copias impresas de las normas están disponibles en los organismos nacionales de normas e ISO pero son muy caras.

Si desea una copia impresa del estándar C90 por mucho menos dinero que el anterior, puede encontrar una copia barata usada del libro de Herb Schildt El estándar ANSI anotado en Amazon , que contiene el texto real del estándar (útil) y comentario sobre la norma (menos útil).

Los estándares C99 y C ++ 03 están disponibles en forma de libro de Wiley y el BSI (British Standards Institute):

Comité de Normas versiones borrador

El borrador de trabajo para futuros estándares a menudo está disponible en los sitios web del comité:

Tenga en cuenta que estos documentos no son lo mismo que el estándar, aunque las versiones justo antes de las reuniones que deciden sobre un estándar son generalmente muy cercanas a lo que se encuentra en el estándar final. Las versiones de FCD (Final Committee Draft) están protegidas por contraseña; Necesitas estar en el comité de normas para conseguirlos.

Sin embargo, en mi opinión, a pesar de que las versiones preliminares pueden estar muy cerca de las versiones ratificadas finales de los estándares, realmente debería obtener una copia de los documentos reales, especialmente si planea citarlos como referencias. Por supuesto, los estudiantes hambrientos deben seguir adelante y usar los borradores si están atados por dinero en efectivo.

Parece que, si está dispuesto y puede esperar unos meses después de la ratificación de una norma, buscar "INCITS / ISO / IEC" en lugar de "ISO / IEC" cuando busque una norma es la clave. De esta manera, pude encontrar el estándar C ++ 11 a un precio razonable y ahora el estándar C11. Entonces, como ejemplo, busque "INCITS / ISO / IEC 9899: 2011" en lugar de "ISO / IEC 9899: 2011" en webstore.ansi.org y encontrará la versión PDF a un precio razonable.


Aunque no es una norma real, existe una enmienda a la norma ISO C (C89 / 90) llamada C94 / 95, o Addendum Normativo 1. Se integró en C99, aunque algunos compiladores como Clang permiten especificar -std=c94 en el línea de comando. Se puede comprar ISO / IEC 9899: 1990 / Amd 1: 1995 por un precio considerable en SAI GLOBAL (PDF o copia impresa).

Un resumen del documento se puede encontrar here .

Cuando el Estándar ANSI C (entonces borrador) estaba siendo considerado para la adopción de un Estándar Internacional en 1990, hubo varias objeciones porque no abordaba los problemas de internacionalización. Debido a que la Norma ya llevaba varios años en la fabricación, se acordó que se harían algunos cambios para proporcionar la base (por ejemplo, se agregaron las funciones en la subcláusula 7.10.7), y el trabajo se llevaría a cabo por separado para proporcionar La adecuada internacionalización de la Norma. Este trabajo ha culminado en el Anexo Normativo 1.

El Anexo Normativo 1 incorpora la reacción de C tanto a las limitaciones como a las promesas de los conjuntos de caracteres internacionales. Los dígrafos y el encabezado fueron diseñados para mejorar la apariencia de los programas de C escritos en variantes nacionales de ISO 646 sin, por ejemplo, {o} caracteres. En el otro extremo del espectro, las instalaciones conectaron y extendieron la base apenas adecuada del antiguo estándar en un conjunto completo y consistente de utilidades para manejar caracteres anchos y cadenas multibyte.

Este documento resume el Anexo normativo 1. Su objetivo es informar rápidamente a los lectores que ya están familiarizados con la Norma; no puede, y no puede, presentar el tema complejo detrás de NA1, ni puede reemplazar el documento original como un manual de referencia. (Sin embargo, trata de ser lo más preciso posible, y su autor desearía conocer cualquier error u omisión).


C99 está disponible en línea . Citado de www.open-std.org :

La última versión disponible públicamente del estándar es la combinación de C99 + TC1 + TC2 + TC3, WG14 N1256 , con fecha 2007-09-07. Este es un documento de trabajo WG14, pero refleja el estándar consolidado en el momento de la emisión.


El texto de un borrador del estándar ANSI C (también conocido como C.89) está disponible en línea. Esto fue estandarizado por el comité ANSI antes de la aceptación por la norma ISO C (C.90), por lo que la numeración de las secciones difiere (las secciones ANSI 2 a 4 corresponden aproximadamente a las secciones ISO 5 a 7), aunque el contenido es (se supone ser en gran parte idéntico.



Las normas ISO cuestan dinero, desde una cantidad moderada (para una versión en PDF), hasta un poco más (para una versión en libro).

Sin embargo, aunque no están finalizados, generalmente se pueden encontrar en línea, como borradores. La mayoría de las veces, la versión final no difiere significativamente del último borrador, así que aunque no sea perfecta, se adaptarán bien.


Las versiones en línea de la norma se pueden encontrar:

Borrador de Trabajo, Estándar para Lenguaje de Programación C ++

Las siguientes versiones en borrador de la norma :
Todos los siguientes son de descarga gratuita.
2018-02-12: N4727 git
2017-11-27: N4713 git
2017-10-16: N4700 git
2017-07-30: N4687 git

Este parece ser el nuevo estándar:
Esta versión requiere autenticación
2017-03-21: N4660 es el Proyecto de Norma C ++ 17

Las siguientes versiones en borrador de la norma :
Todos los siguientes son de descarga gratuita.
2017-03-21: N4659 git
2017-02-06: N4640 git
2016-11-28: N4618 git
2016-07-12: N4606 git
2016-05-30: N4594 git
2016-03-19: N4582 git
2015-11-09: N4567 git
2015-05-22: N4527 git
2015-04-10: N4431 git
2014-11-19: N4296 git

Este parece ser el antiguo estándar de C ++ 14 :
Esta versión requiere autenticación
2014-10-07: N4140 git Esencialmente C ++ 14 con errores menores y errores tipográficos corregidos
N4141 : N4141 git Estándar C ++ 14
2014-03-02: N3937
2014-03-02: N3936 git

Las siguientes versiones en borrador de la norma :
Todos los siguientes son de descarga gratuita.
2013-10-13: N3797 git
2013-05-16: N3691
2013-05-15: N3690
2012-11-02: N3485
N3376 : N3376
2012-01-16: N3337 git Esencialmente C ++ 11 con errores menores y errores tipográficos corregidos

Este parece ser el antiguo estándar de C ++ 11 :
Esta versión requiere autenticación
2011-04-05: N3291 C ++ 11 (o muy cerca)

Las siguientes versiones en borrador de la norma :
Todos los siguientes son de descarga gratuita.
2011-02-28: N3242 (diferencias con N3291 muy menores)
2010-11-27: N3225
2010-08-21: N3126
2010-03-29: N3090
2010-02-16: N3035
2009-11-09: N3000
2009-09-25: N2960
2009-06-22: N2914
N2857 : N2857
2008-10-04: N2798
2008-08-25: N2723
2008-06-27: N2691
2008-05-19: N2606
2008-03-17: N2588
2008-02-04: N2521
2007-10-22: N2461
2007-08-06: N2369
2007-06-25: N2315
2007-05-07: N2284
2006-11-03: N2134
2006-04-21: N2009
2005-10-19: N1905
2005-04-27: N1804

Este parece ser el antiguo estándar de C ++ 03:
Todas las versiones a continuación requieren autenticación
2004-11-05: N1733
2004-07-16: N1655 no oficial
2004-02-07: N1577 C ++ 03 (o muy cerca)
2001-09-13: N1316 borrador N1316 técnico ampliado
1997-00-00: N1117 Draft Expanded Technical Corrigendum

Las siguientes versiones en borrador de la norma :
Todos los siguientes son de descarga gratuita.
1996-00-00: N0836 Proyecto N0836 técnicos ampliados
1995-00-00: N0785 Documento de trabajo para el Proyecto de Norma Internacional Propuesta para Sistemas de Información - Lenguaje de Programación C ++

Otros papeles interesantes:

2018


Los documentos de estándares reales pueden no ser los más útiles. La mayoría de los compiladores no implementan completamente los estándares y, a veces, pueden entrar en conflicto Así que la documentación del compilador que ya tendría será más útil. Además, la documentación contendrá comentarios y notas específicos de la plataforma sobre cualquier advertencia.



Los estándares ISO C y C ++ son muy caros. Por otro lado, los INCITS los vuelven a publicar por mucho menos. Techstreet parece tener el PDF por $ 30 (busque INCITS / ISO / IEC 14882: 2003).

Las versiones impresas también están disponibles. Busque las versiones del British Standards Institute, publicadas por Wiley.


http://c0x.coding-guidelines.com/ contiene una versión de búsqueda basada en HTML del estándar C. En realidad, una versión ligeramente modificada:

Este sitio web contiene una versión modificada de N1256. Incluye palabras que se han eliminado de C99 (es decir, en forma marcada) y palabras que aparecen en C99 (es decir, en forma subrayada).


Proyecto de enlaces:

C ++ 11 (+ correcciones editoriales): N3337 HTML , N3337

C ++ 14 (+ correcciones editoriales): N4140 HTML , PDF

C11 N1570 ( text )

C99 N1256

Drafts de la Norma se distribuyen para comentarios antes de la ratificación y publicación.

Note que un borrador de trabajo no es la norma actualmente vigente, y no es exactamente la norma publicada