Pregunta

Alguien me ha dicho que C ++ 98 fue escrito bajo ANSI antes de ser formalmente estandarizado como ISO/IEC 14882: 1998.

Sé que ANSI estuvo involucrado con C, pero parece que no puedo encontrar mucha prueba de que la frase "ANSI C ++" es terriblemente precisa.

  • ¿Es "ANSI C ++" una buena descripción para C ++ 98?
  • ¿Es "ANSI C ++" una buena descripción para las versiones posteriores del estándar C ++?
¿Fue útil?

Solución

Inicialmente, en el '89, la estandarización de C ++ fue manejada por ANSI X3J16. A partir del '91 ISO WG21 se unió. Es posible que desee leer BS's Una historia de C ++: 1979-1991. En mi opinión, "ANSI C ++" es solo un nombre sobrante; El lenguaje es "ISO C ++" a pesar de que ANSI está involucrado indirectamente en la estandarización.

Otros consejos

Este Página de GOTW describe la relación de ANSI e ISO en lo que respecta a C ++, brevemente:

Los nombres oficiales de los comités ISO y de EE. UU. Son:

ISO/IEC JTC1/SC22/WG21 - C ++ (Comité ISO C ++)

Incites PL22.16 - C ++ (el comité de C ++ de los EE. UU., A menudo llamado el "Comité ANSI C ++" - aunque Incits con mayor precisión es una organización separada que no forma parte de ANSI pero que está acreditado por ANSI para desarrollar estándares de los Estados Unidos) (llamado previamente X3J16 y J16)

A menudo se hace referencia a estos dos grupos juntos en el singular como "el comité C ++" porque se reúnen y hacen su trabajo juntos. Las reuniones siempre están en la misma habitación al mismo tiempo

Parece que el estándar ISO desarrollado por este comité se convierte automáticamente en el estándar de EE. UU., Aunque estoy seguro de que las personas que realmente trabajan en esos comités pueden explicar mejor.

Más o menos, pero en realidad no. No hay, y nunca ha sido un estándar ANSI separado para C ++.

El estándar actual, sin embargo, es en realidad Incites/ISO/IEC 14882-2003. A partir de 2003, los incits se convirtieron en una organización separada acreditada por ANSI. Los incits de nombre no eran nuevos, pero anteriormente, había sido parte de ANSI. En 2003, fue "Girado"Como una organización separada (pero aún acreditada por ANSI). Por lo tanto, el estándar actual (2003) aparece como un estándar de incits/ISO/IEC, y creo que el próximo estándar (2011) también lo hará.

C ++ 98 fue desarrollado por un comité internacional, parte de la Organización Internacional de Estandarización (ISO). ANSI, y otros organismos nacionales de estándares, son miembros de este comité. El estándar internacional ha sido adoptado por ANSI como el Estándar Nacional de los Estados Unidos, y del mismo modo por muchos otros organismos nacionales de estándares.

Las versiones anteriores fueron desarrolladas comercialmente en los EE. UU. Por AT&T; No estoy seguro de si ANSI estuvo involucrado o no en versiones intermedias (editar: pero la respuesta de Erik sugiere que fue, brevemente).

¿Es "ANSI C ++" una buena descripción para C ++ 98?

Lo llamaría "estándar C ++", o "C ++ 98", o simplemente "C ++" si está claro que estoy hablando del estándar actual. Si bien es técnicamente exacto, "ANSI C ++" podría confundir a las personas que no se dan cuenta de que significa lo mismo, particularmente personas de otros países que podrían no saber qué es ANSI. Probablemente obtendría un aspecto extraño si lo llamara "British Standard C ++", una descripción igualmente precisa.

¿Es "ANSI C ++" una buena descripción para las versiones posteriores del estándar C ++?

Misma respuesta. Los estándares C ++ son desarrollados por ISO y adoptados por ANSI y otros cuerpos.

AFAIK Cuando dicen "ANSI C ++", realmente significan "no hay extensiones específicas del compilador".

El grupo de trabajo ISO crea el estándar. C ++ 98 se realizó mucho trabajo en la estandarización en Estados Unidos (porque ahí es donde se creó C ++ y donde vivían sus creadores) antes de que la estandarización se tomara bajo los auspicios del comité ISO (que eran las mismas personas). El estándar ISO final fue adoptado por ANSI y otras autoridades de estándares nacionales.

Siempre me he referido a C ++ estándar como "C ++ estándar".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top