Какой PDF-файл стандарта C ++ ISO мне следует прочитать?

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

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

Я не знаю, какой PDF-файл и / или какую версию мне выбрать.

Нашел несколько сайтов:

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


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

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

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


ИЗМЕНИТЬ
Из Wiki C ++ 11, пишет:

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


person Zachary    schedule 21.06.2013    source источник
comment
какой компилятор вы используете?   -  person stark    schedule 21.06.2013
comment
@ stark- Как это здесь уместно?   -  person templatetypedef    schedule 21.06.2013
comment
@stark Я использую и VC ++, и G ++. Стандарт C ++ зависит от компилятора, хотя иногда разные компиляторы реагируют по-разному. Однако основные принципы мне кажутся похожими.   -  person Zachary    schedule 21.06.2013
comment
@templatetypedef Вы не думаете, что это важно, использует ли он компилятор C ++ 98 или C ++ 11?   -  person stark    schedule 21.06.2013
comment
@ stark- В этом есть смысл. Я не понимал, что вы говорили о том, какую версию C ++ поддерживает компилятор. Спасибо за разъяснения!   -  person templatetypedef    schedule 21.06.2013


Ответы (3)


Обновление 2018: стандарт C ++ поддерживается на GitHub. Здесь вы можете найти архив старых рабочих проектов, созданный несколько лет назад.


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

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

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

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

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

person Casey    schedule 21.06.2013
comment
Качаю pdf файл N3690. Он называется Проект комитета (CD). Есть ли разница между рабочим проектом и проектом комитета? - person Zachary; 21.06.2013
comment
Последний рабочий черновик для C ++ 11 - n3291, который недоступен (возможно, слишком близок к окончательной версии ISO). Они рекомендуют n3337 для справки по C ++ 11. - person Zachary; 21.06.2013

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

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

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

person templatetypedef    schedule 21.06.2013

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

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

person Brian Cain    schedule 21.06.2013