web-dev-qa-db-fra.com

Où puis-je trouver les documents standard actuels C ou C ++?

Pour de nombreuses questions, la réponse semble être trouvée dans "le standard". Cependant, où trouvons-nous cela? De préférence en ligne.

Googler peut parfois sembler futile, encore une fois en particulier pour les standards C, car ils sont noyés dans le flot de discussions sur les forums de programmation.

Pour commencer, puisque ce sont ceux que je recherche en ce moment, où existe-t-il de bonnes ressources en ligne pour:

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

Versions PDF de la norme

Depuis le 1er septembre 2014, les meilleurs emplacements par prix pour les documents standard C et C++ dans PDF sont les suivants:

Vous ne pouvez généralement pas obtenir les anciennes révisions d'une norme (n'importe quelle norme) directement auprès des organismes de normalisation peu de temps après la publication d'une nouvelle édition de la norme. Ainsi, il sera difficile de trouver des normes pour C89, C90, C99, C++ 98, C++ 03 auprès d'un organisme de normalisation. Si vous avez besoin d’une ancienne révision d’une norme, cochez Techstreet comme source possible. Par exemple, il peut toujours fournir la version canadienne de la norme canadienne CAN/CSA-ISO/IEC 9899: 1990, moyennant des frais.

Versions électroniques non PDF de la norme

Version imprimée de la norme

Des exemplaires imprimés des normes sont disponibles auprès des organismes nationaux de normalisation et ISO mais sont très coûteux.

Si vous voulez une copie papier de la norme C90 pour beaucoup moins cher que précédemment, vous pourrez peut-être trouver une copie utilisée pas cher du livre de Herb Schildt Le standard ANSI annoté sur Amazon , qui contient le texte actuel du standard (utile) et des commentaires sur le standard (moins utile).

Les normes C99 et C++ 03 sont disponibles sous forme de livre auprès de Wiley et du BSI (British Standards Institute):

Version préliminaire du comité de normalisation

Le brouillon des futures normes est souvent disponible sur les sites Web des comités:

Notez que ces documents ne sont pas identiques à la norme, bien que les versions juste avant les réunions qui décident d'une norme soient généralement très proches de celles de la norme finale. Les versions FCD (Final Committee Draft) sont protégées par mot de passe; vous devez faire partie du comité des normes pour les obtenir.

Cependant, à mon avis, même si les versions provisoires sont très proches des versions finales des normes ratifiées, vous devriez vraiment obtenir une copie des documents eux-mêmes, surtout si vous envisagez de les citer à titre de référence. Bien sûr, les étudiants affamés devraient aller de l'avant et utiliser les brouillons s'ils sont à court d'argent.


Il semble que, si vous êtes prêt et capable d’attendre quelques mois après la ratification d’une norme, il est essentiel de rechercher "INCITS/ISO/CEI" au lieu de "ISO/CEI" lorsque vous recherchez une norme. De cette façon, j'ai pu trouver le standard C++ 11 à un prix raisonnable et maintenant le standard C11. Ainsi, à titre d'exemple, vous recherchez "INCITS/ISO/IEC 9899: 2011" au lieu de "ISO/IEC 9899: 2011" sur webstore.ansi.org et vous trouverez le _ à prix raisonnable PDF version.


Le site https://wg21.link/ fournit des liens URL courts vers les brouillons actuels de travail C++ et les projets de normes, ainsi que les documents des comités:


Le projet actuel de la norme est maintenu en tant que sources LaTeX sur Github . Ces sources peuvent être converties en HTML à l'aide de cxxdraft-htmlgen . Les sites suivants conservent les pages HTML ainsi générées:

Tim Song conserve également les versions HTML et PDF générées du TS de mise en réseau et des plages TS.

407
Michael Burr

Des versions en ligne de la norme peuvent être trouvées:

Working Draft, Standard pour le langage de programmation C++

Toutes les versions suivantes de la norme suivantes:
Tous les suivants sont téléchargeables gratuitement
2019-08-15: N48git
2019-06-17: N482git
2019-03-15: N481git
2019-01-21: N48git
2018-11-26: N4791git
2018-10-08: N4778git
2018-07-07: N4762git
2018-05-07: N475git
2018-04-02: N4741git
2018-02-12: N4727git
2017-11-27: N471git
2017-10-16: N47git
2017-07-30: N4687git

Cela semble être le nouveau standard:
Cette version nécessite une authentification
2017-03-21: N466 est le projet de norme C++ 17

Toutes les versions suivantes de la norme suivantes:
Tous les suivants sont téléchargeables gratuitement
2017-03-21: N4659git
2017-02-06: N464git
2016-11-28: N4618git
2016-07-12: N4606git
2016-05-30: N4594git
2016-03-19: N4582git
2015-11-09: N4567git
2015-05-22: N4527git
2015-04-10: N4431git
2014-11-19: N4296git

Cela semble être l'ancien standard C++ 14 :
Cette version nécessite une authentification
2014-10-07: N414git Essentiellement C++ 14 avec des erreurs mineures et des fautes de frappe corrigées
2014-09-02: N4141git Standard C++ 14
2014-03-02: N3937
2014-03-02: N3936git

Toutes les versions suivantes de la norme suivantes:
Tous les suivants sont téléchargeables gratuitement
2013-10-13: N3797git
2013-05-16: N3691
2013-05-15: N369
2012-11-02: N3485
2012-02-28: N3376
2012-01-16: N3337git Essentiellement C++ 11 avec des erreurs mineures et des fautes de frappe corrigées

Cela semble être l'ancien standard C++ 11 :
Cette version nécessite une authentification
2011-04-05: N3291 C++ 11 (ou très proche)

Toutes les versions suivantes de la norme suivantes:
Tous les suivants sont téléchargeables gratuitement
2011-02-28: N3242 (différences très mineures avec N3291)
2010-11-27: N3225
2010-08-21: N3126
2010-03-29: N309
2010-02-16: N3035
2009-11-09: N30
2009-09-25: N296
2009-06-22: N2914
2009-03-23: N2857
2008-10-04: N2798
2008-08-25: N272
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

Cela semble être l'ancien standard C++ 03:
Toutes les versions ci-dessous nécessitent une authentification
2004-11-05: N17
2004-07-16: N1655 Non-officiel
2004-02-07: N1577 C++ 03 (ou très proche)
2001-09-13: N1316 Projet de corrigendum technique élargi
1997-00-00: N1117 Projet de corrigendum technique élargi

Toutes les versions suivantes de la norme suivantes:
Tous les suivants sont téléchargeables gratuitement
1996-00-00: N0836 Projet de corrigendum technique élargi
1995-00-00: N0785 Document de travail pour l'avant-projet de norme internationale proposée pour les systèmes d'information - Langage de programmation C++

Autres articles intéressants:

2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 201 / 2012 / 2011

413
Martin York

C99 est disponible en ligne . Cité de www.open-std.org :

La dernière version disponible publiquement de la norme est la version combinée C99 + TC1 + TC2 + TC3, WG14 N1256 , datée du 2007-09-07. Ceci est un document de travail du GT14, mais il reflète la norme consolidée au moment de sa publication.

63
Frederico

Liens brouillons:

C++ 11 (+ corrections éditoriales): N3337 HTML , PDF

C++ 14 (+ corrections éditoriales): N4140 HTML , PDF

C11 N157 ( text )

C99 N1256

Projets de la norme sont distribués pour commentaires avant ratification et publication.

Note qu'un brouillon de travail n'est pas la norme actuellement en vigueur et qu'il ne s'agit pas exactement de la norme publiée

24
user1055604

Vous pourriez trouver le projet de norme internationale pour C++ 0x utile.

12
James Hopkin

Les normes ISO coûtent de l'argent, allant d'un montant modéré (pour une version PDF) à un peu plus élevé (pour une version livre).

Bien qu'ils ne soient pas finalisés, ils peuvent généralement être trouvés en ligne, en tant que brouillons. La plupart du temps, la version finale ne diffère pas de manière significative du dernier brouillon. Par conséquent, même si elle n'est pas parfaite, elle conviendra parfaitement.

9
Pieter

Les normes C99 et C++ 03 sont disponibles sous forme de livre auprès de Wiley:

De plus, comme déjà mentionné, le projet de travail pour les normes futures est souvent disponible sur les sites Web des comités:

Le brouillon C-201x est disponible sous la forme N1336 , et le brouillon C++ 0x sous la forme N3225 .

6
Anthony Williams

Les normes ISO C et C++ coûtent cher. Par contre, l'INCITS les republie pour beaucoup moins. http://www.techstreet.com/ semble avoir le PDF pour 30 $ (recherchez INCITS/ISO/IEC 14882: 2003).

Des versions papier sont également disponibles. Recherchez les versions du British Standards Institute, publiées par Wiley.

3
MSalters

Le texte d'un brouillon de la norme ANSI C (aka C.89) est disponible en ligne. Ceci a été normalisé par le comité ANSI avant d'être accepté par la norme ISO C (C.90). La numérotation des sections est donc différente (les sections ANSI 2 à 4 correspondent approximativement aux sections ISO 5 à 7), bien que le contenu soit (supposé être) en grande partie identique.

3
jxh

Les documents de normes ne sont peut-être pas les plus utiles. La plupart des compilateurs ne mettent pas pleinement en œuvre les normes et peuvent parfois être en conflit. Ainsi, la documentation du compilateur que vous auriez déjà sera plus utile. De plus, la documentation contiendra des remarques spécifiques à la plate-forme et des notes sur les mises en garde.

2
Kris Kumler

Bien qu’il ne s’agisse pas d’une norme, il existe un amendement à l’ISO C (C89/90) appelé C94/95, ou additif normatif 1. Il a été intégré à C99, bien que certains compilateurs tels que Clang vous permettent de: spécifiez -std=c94 sur la ligne de commande. ISO/IEC 9899: 1990/AMD 1: 1995 peuvent être achetés à un prix élevé de SAI GLOBAL (PDF ou hard copie).

Un résumé du document peut être trouvé ici .

Lorsque la norme ANSI C (alors en projet) était à l’étude en vue de l’adoption d’une norme internationale en 1990, il ya eu plusieurs objections car elle ne traitait pas des problèmes d’internationalisation. Étant donné que la norme était déjà en préparation depuis plusieurs années, il a été convenu que quelques modifications seraient apportées pour fournir la base (par exemple, les fonctions du sous-paragraphe 7.10.7 ont été ajoutées), et des travaux seraient effectués séparément pour fournir: internationalisation appropriée de la norme. Ce travail a abouti à l'additif normatif 1.

L'addenda normatif 1 illustre la réaction de C face aux limitations et aux promesses des jeux de caractères internationaux. Les graphes numériques et l'en-tête visaient à améliorer l'apparence des programmes C écrits dans les variantes nationales de l'ISO 646 sans, par exemple, les caractères {ou}. À l'autre extrémité du spectre, les installations connectées à l'ancienne base de l'ancienne norme et les étendant à peine suffisantes pour en faire un ensemble complet et cohérent d'utilitaires permettant de traiter des caractères larges et des chaînes multi-octets.

Le présent document résume l’additif normatif 1. Il est destiné à informer rapidement les lecteurs déjà familiarisés avec la norme; il n'introduit pas et ne peut pas introduire la matière complexe de NA1 et ne peut pas non plus remplacer le document original en tant que manuel de référence. (Néanmoins, il essaie d'être aussi précis que possible et son auteur aimerait entendre parler d'éventuelles erreurs ou omissions.)

1
user3920237