Какой наилучший подход к изучению логического формата и словарного запаса необходим для чтения стандарта ISO C ++? - PullRequest
2 голосов
/ 17 апреля 2019

На веб-сайте ИСО https://isocpp.org/std/the-standard они отвечают на вопрос Почему стандарт трудно читать? с указанием ...

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

Затем они дают ссылку на некоторые ресурсыгде можно легче выучить cpp https://isocpp.org/get-started. Это здорово, но все ресурсы, которые я могу найти, направлены на то, чтобы научить меня CPP, когда то, что я хочу, - это ресурс, который помогает мне научиться читать стандарт.

Например, я пытаюсь прочитать ISO / IEC 14882: 1998 (E) ( Я использую 98 из-за работы );И если я хочу посмотреть функции, я вижу что-то вроде этого.

В объявлении T D, где D имеет вид

D1 (параметр-объявление-предложение) cv-qualifier-seq opt спецификация исключений opt

, а тип содержащегося идентификатора объявления в объявлении T D1 - «производный-объявление-тип-списка Т», типидентификатор объявления в D - это «функция-производная-описатель-типа-списка» (параметр-объявление-предложение) cv-qualifier-seq opt returning T »;тип этой формы - тип функции 86 ).

Я могу посмотреть, что означают слова из словарного запаса, и в общем заполнить то, что передается, но есть детали, которые не соответствуютпрямо вперед.Например, что означает индекс opt ?Где мне найти правила, как они это используют?Есть ли какие-либо ресурсы, которые конкретизируют эти детали или хотя бы дают обзор, на который я могу сослаться?

1 Ответ

3 голосов
/ 17 апреля 2019

Стандарт фактически предоставляет вам некоторые инструменты, необходимые для его прочтения. Раздел 4 Общие принципы содержит много того, что вам нужно знать, прежде чем вы начнете читать остальную часть.Например, [синтаксис] / 1 имеет

В синтаксической нотации, используемой в этом документе, синтаксические категории обозначаются типом курсив и буквенными словамии символы типа constant width.Альтернативы перечислены в отдельных строках, за исключением нескольких случаев, когда длинный набор альтернатив отмечен фразой «один из».Если текст альтернативы слишком длинный, чтобы поместиться в строке, текст продолжается в последующих строках с отступом от первой.Дополнительный терминальный или нетерминальный символ указывается нижним индексом « opt », поэтому


{ <i>expression<sub>opt</sub></i> }

обозначает необязательное выражение, заключенное в фигурные скобки.

Итак, он говорит вам, что opt означает необязательный.

...