Какой PDF-код стандарта С++ ISO я должен прочитать?

Иногда я хочу самостоятельно искать ответы со стандартом С++. Стандарты чтения могут помочь мне получить обзор предлагаемого принципа языка.

При поиске в Интернете меня смутило наводнение форумов С++ и вспомогательных веб-сайтов. Они предоставляют все виды файлов PDF для чтения.

Я не знаю, какой файл PDF и/или какую версию я должен принять.

Я нашел несколько веб-сайтов:

Интересно, существует ли один сайт, на котором публикуется стандарт. С какой версией я должен ссылаться при решении проблем? Некоторые говорят, что С++ 98, в то время как другие говорят С++ 11, и даже последние рабочие черновики. (многие черновики путают меня).


ИЗМЕНИТЬ
Я нашел полезную информацию из Стандарт, который пишет:

За исключением только окончательных стандартов/отчетов, весь комитет С++ документы свободно доступны общественности, включая все рабочие проекты, многие из которых тесно приближаются к опубликованному стандарту. Январь 2012 рабочий проект содержит стандарт С++ 11 плюс небольшую редакционную статью изменения.

Рабочий проект в январе 2012 года N3337.
Надеюсь, это поможет вам, ребята.


ИЗМЕНИТЬ
Из Wiki С++ 11 он пишет:

Рабочий проект, наиболее похожий на опубликованный стандарт С++ 11, - N3337 от 12 января 2012 года; он имеет только редакционные исправления из стандарта С++ 11.

Ответ 1

Официальный стандарт С++ 11 INCITS/ISO/IEC 14882: 2011 доступен на ansi.org за 30 долларов США. Вы можете использовать более старые стандарты Google, ища, например, 14882: 2003 и поиск PDF файлов. Я не уверен, если это "законно", чтобы загрузить их, поэтому не забудьте об этом плохо, если вы это сделаете.

Прежде чем опубликовать стандарт, комитет ведет рабочий проект стандартного документа со всеми изменениями по мере их введения. Этот рабочий проект в конечном итоге проголосовали за то, чтобы стать стандартом, после чего были сделаны лишь незначительные редакционные изменения до публикации в качестве стандарта.

Рабочие проекты - и немало других документов - выпускаются в виде ряда документов комитетом и доступны для общественности, за исключением окончательного утвержденного проекта стандарта. Правила ISO сохраняют последнюю версию "секретной", так что люди будут платить за стандарт, а деньги могут быть использованы для финансирования организационной работы, которую выполняет фактический ISO.

Люди, которые не хотят платить за стандарт, используют окончательную общедоступную копию рабочего проекта в качестве справочного материала, поскольку он, как правило, идентичен стандартным документам по сравнению с незначительными редакционными изменениями, о которых я упоминал ранее. Для С++ 11 этот последний черновик N3242 - рабочий проект, стандарт для языка программирования С++. Первый рабочий проект после С++ 11 N3337 может более точно отражать окончательный стандарт (я слишком ленив, чтобы сравнивать).

Текущий рабочий проект для С++ 1y N3690 - язык программирования, С++. Если вы действительно хардкор, вы можете отслеживать репозиторий редактора текущего проекта на Github.

Ответ 2

Официальным стандартом ISO для С++ 11 является ISO/IEC 14882: 2011, а официальный стандарт ISO для С++ 03 - ISO/IEC 14882: 2003. Обычно вам нужно заплатить, чтобы получить их копию (и, насколько мне известно, единственный законный способ сделать это), и это официальные документы.

С++ 98 - это более старая версия языка, которая была заменена в 2003 году на С++ 03, что было в основном незначительными исправлениями ошибок и корректировками документа. С++ 11 - это новейший стандарт С++ и был выпущен в 2011 году. Поддержка компилятора еще не завершена. Проекты, которые вы имеете в виду, представляют собой проекты версий периодически выпускаемых стандартов, которые могут отличаться от окончательной опубликованной версии. Рабочие документы - это в основном предложения для документов, которые рассматриваются группой ИСО, но которые не являются официальными.

Надеюсь, это поможет!

Ответ 3

Хорошо, вы можете купить официальный стандарт от ISO (как вы уже связали). Последние рабочие проекты достаточны для моих целей (я не реализую компиляторы, линкеры, библиотеки или лексеры).

Если вы занимаетесь серьезной профессиональной работой с языком, за который стоит заплатить. Если вы хотите понять конкретные технические детали языка, используйте один из черновиков.