Где найти текущие стандартные документы C или С++?
По многим вопросам ответ, похоже, встречается в "стандарте". Однако, где мы находим это? Предпочтительно онлайн.
Google может иногда казаться бесполезным, особенно в отношении стандартов C, поскольку они утоплены в результате дискуссий на форумах программирования.
Чтобы начать работу, так как это те, которые я ищу прямо сейчас, где есть хорошие онлайн-ресурсы для:
- C89
- C99
- C11
- С++ 98
- С++ 03
- С++ 11
- С++ 14
Ответы
Ответ 1
PDF версии стандарта
По состоянию на 1 сентября 2014 года лучшими местоположениями по цене для документов стандартов C и C++ в формате PDF являются:
Обычно вы не можете получить старые версии стандарта (любого стандарта) непосредственно от органов по стандартизации вскоре после выпуска новой версии стандарта. Таким образом, стандарты для C89, C90, C99, C++ 98, C++ 03 будет трудно найти для закупки у органа по стандартизации. Если вам нужна старая версия стандарта, проверьте Techstreet как один из возможных источников. Например, он все еще может предоставить канадскую версию стандарта CAN/CSA-ISO/IEC 9899: 1990 в формате PDF за плату.
Электронные версии стандарта без PDF
Печатные версии стандарта
Печатные копии стандартов можно получить в национальных органах по стандартизации и ISO, но они очень дороги.
Если вам нужна бумажная копия стандарта C90 за гораздо меньшие деньги, чем указанная выше, вы можете найти дешевую использованную копию книги Херба Шильдта "Стандарт ANSI в аннотациях" на Amazon, которая содержит фактический текст стандарта (полезный) и комментарий по стандарту (менее полезно).
Стандарты C99 и C++ 03 доступны в виде книг от Wiley и BSI (Британский институт стандартов):
Черновые версии комитета по стандартам
Рабочий проект будущих стандартов часто доступен на веб-сайтах комитета:
Обратите внимание, что эти документы не совпадают со стандартом, хотя версии непосредственно перед заседаниями, на которых принимается решение о стандарте, обычно очень близки к тому, что содержится в окончательном стандарте. Версии FCD (финального комитета) защищены паролем; Вы должны быть в комитете по стандартам, чтобы получить их.
Однако, по моему мнению, даже несмотря на то, что черновые версии могут быть очень близки к окончательно утвержденным версиям стандартов, вам действительно следует получить копию фактических документов, особенно если вы планируете указывать их в качестве ссылок. Конечно, голодающие студенты должны идти вперед и использовать шашки, если они привязаны к деньгам.
Похоже, что если вы готовы и можете подождать несколько месяцев после ратификации стандарта, поиск "INCITS/ISO/IEC" вместо "ISO/IEC", когда поиск стандарта является ключевым. Таким образом, я смог найти стандарт C++ 11 по разумной цене, а теперь и стандарт C11. Итак, в качестве примера вы ищете "INCITS/ISO/IEC 9899: 2011" вместо "ISO/IEC 9899: 2011" на webstore.ansi.org, и вы найдете версию PDF по разумной цене.
Сайт https://wg21.link/ предоставляет ссылки на короткие URL-адреса на текущий рабочий проект и проекты стандартов C++, а также на документы комитетов:
Текущий проект стандарта поддерживается как источники LaTeX на Github. Эти источники могут быть преобразованы в HTML с помощью cxxdraft-htmlgen. Следующие сайты поддерживают сгенерированные HTML-страницы:
Тим Сонг также поддерживает сгенерированные HTML и PDF версии Networking TS и Ranges TS.
Ответ 2
Онлайн-версии стандарта можно найти:
Рабочий проект, стандарт для языка программирования C++
Следующие все черновые версии стандарта:
Все нижеперечисленное можно загрузить бесплатно
2019-08-15: N4830 git
2019-06-17: N4820 git
2019-03-15: N4810 git
2019-01-21: N4800 git
2018-11-26: N4791 git
2018-10-08: N4778 git
2018-07-07: N4762 git
2018-05-07: N4750 git
2018-04-02: N4741 git
2018-02-12: N4727 git
2017-11-27: N4713 git
2017-10-16: N4700 git
2017-07-30: N4687 git
Похоже, это новый стандарт:
Эта версия требует аутентификации
2017-03-21: N4660 - это черновой вариант стандарта C++ 17
Следующие все черновые версии стандарта:
Все нижеперечисленное можно загрузить бесплатно
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
Похоже, это старый C++ 14 стандарт:
Эта версия требует аутентификации
2014-10-07: N4140 git По существу C++ 14 с небольшими ошибками и исправленными опечатками
2014-09-02: N4141 git Standard C++ 14
2014-03-02: N3937
2014-03-02: N3936 git
Следующие все черновые версии стандарта:
Все нижеперечисленное можно загрузить бесплатно
2013-10-13: N3797 git
2013-05-16: N3691
2013-05-15: N3690
2012-11-02: N3485
2012-02-28: N3376
2012-01-16: N3337 git По существу C++ 11 с небольшими ошибками и исправленными опечатками
Похоже, это старый стандарт C++ 11:
Эта версия требует аутентификации
2011-04-05: N3291 C++ 11 (или очень близко)
Следующие все черновые версии стандарта:
Все нижеперечисленное можно загрузить бесплатно
2011-02-28: N3242 (отличия от N3291 очень незначительные)
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
2009-03-23: 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
Похоже, это старый стандарт C++ 03:
Все приведенные ниже версии требуют аутентификации
2004-11-05: N1733
2004-07-16: N1655 Неофициальный
2004-02-07: N1577 C++ 03 (или очень близко)
2001-09-13: N1316 Проект расширенного технического исправления
1997-00-00: N1117 Проект расширенного технического исправления
Следующие все черновые версии стандарта:
Все нижеперечисленное можно загрузить бесплатно
1996-00-00: N0836 Проект расширенного технического исправления
1995-00-00: N0785 Рабочий документ для проекта предлагаемого международного стандарта для информационных систем - язык программирования C++
Другие интересные документы:
2019/
2018/
2017/
2016/
2015/
2014/
2013/
2012/
2011
Ответ 3
C99 доступен в Интернете. Цитируется из www.open-std.org:
Самая последняя общедоступная версия стандарта - это объединенный C99 + TC1 + TC2 + TC3, WG14 N1256 от 2007-09-07. Это рабочий документ WG14, но он отражает консолидированный стандарт на время выпуска.
Ответ 4
Черновики ссылок:
С++ 11 (исправления +editorial): N3337 HTML, PDF
С++ 14 (исправления +editorial): N4140 HTML, PDF
C11 N1570 (текст)
C99 N1256
Проекты Стандарта распространяются для комментариев до ратификации и публикации.
Обратите внимание, что рабочий проект не является стандартом, действующим в настоящее время, и это не совсем опубликованный стандарт.
Ответ 5
Вы можете найти проект международного стандарта для полезного использования С++ 0x.
Ответ 6
Стандарты ИСО стоят денег, от умеренной суммы (для версии PDF), немного больше (для книжной версии).
Хотя они еще не завершены, их обычно можно найти в Интернете, как черновики. В большинстве случаев окончательная версия не отличается значительно от последнего черновика, поэтому, хотя она не идеальна, они будут соответствовать только штрафу.
Ответ 7
Стандарты C99 и C++ 03 доступны в виде книги от Wiley:
Кроме того, как уже упоминалось, рабочий проект будущих стандартов часто можно найти на веб-сайтах комитета:
Тяга C-201x доступна как N1336, а тяга C++ 0x - N3225.
Ответ 8
Стандарты ISO C и С++ являются дорогостоящими. С другой стороны, INCITS переиздает их намного меньше. http://www.techstreet.com/, похоже, имеет PDF за 30 $
(поиск INCITS/ISO/IEC 14882: 2003).
Доступны и печатные версии. Посмотрите на версии Британского института стандартов, опубликованные Wiley.
Ответ 9
Текст проекта стандарта ANSI C (aka C.89) доступен в Интернете. Это было стандартизировано комитетом ANSI до принятия стандартом ISO C (C.90), поэтому нумерация разделов отличается (разделы ANSI с 2 по 4 соответствуют примерно разделам с 5 по 7 ISO), хотя содержание (предположительно быть) в значительной степени идентичны.
Ответ 10
Фактические документы стандартов могут быть не самыми полезными. Большинство компиляторов не полностью реализуют стандарты и иногда могут конфликтовать. Таким образом, документация компилятора, которую вы уже получили, будет более полезна. Кроме того, в документации будут содержаться замечания и примечания, относящиеся к платформе, для любых оговорок.
Ответ 11
Хотя это не настоящий стандарт, есть поправка к ISO C (C89/90) под названием C94/95 или Нормативное дополнение 1. Она была интегрирована в C99, хотя некоторые компиляторы, такие как Clang позволяет указать -std=c94
в командной строке. ISO/IEC 9899: 1990/Amd 1:1995 можно приобрести за здоровую цену от SAI GLOBAL (PDF или печатная версия).
Резюме документа можно найти здесь.
Когда был рассмотрен (тогдашний проект) стандарт ANSI C для принятие в 1990 году Международного стандарта, было несколько возражений, поскольку он не затрагивает вопросы интернационализации. Поскольку в Стандарте уже было несколько лет, он была достигнута договоренность о том, что будет сделано несколько изменений для обеспечения основы (для Например, были добавлены функции в подпункте 7.10.7), и работа осуществляются отдельно для обеспечения надлежащей интернационализации стандарт. Эта работа завершилась нормативным дополнением 1.
Нормативное добавление 1 воплощает реакцию C как на ограничения, так и на promises международных наборов символов. Диграфы и заголовок должен был улучшить внешний вид программ на C, написанных на национальные варианты ISO 646 без, например, {или} символов. На другой конец спектра, объекты, подключенные к распространять старый Стандарт едва адекватно в полный и последовательный набор утилит для обработки широких символов и многобайтовые строки.
В этом документе обобщается нормативное дополнение 1. Оно предназначено для быстро информировать читателей, которые уже знакомы со Стандартом; Это не может и не может ввести сложный предмет за NA1, а также не может заменить оригинальный документ в качестве справочного руководства. (Тем не менее, он пытается быть максимально точным, а его автор хотел бы услышать о любых ошибках или упущениях.)
Ответ 12
http://c0x.coding-guidelines.com/ содержит стандартную версию стандарта C на основе HTML. Собственно, слегка измененная версия:
Этот веб-сайт содержит модифицированную версию N1256. Оно включает формулировка, которая была удалена с C99 (т.е. в пробитой форме) и формулировка, которая раньше отображалась на C99 (то есть в подчеркнутом форма).