В стандарте С++ 11 (ближайший черновик N3337) section 1.2
Нормативные ссылки говорят:
Следующие ссылочные документы являются обязательными для применения этого документа. Для датированных ссылок только издание цитируется. Для недатированных ссылок последнее издание (включая любые поправки).
но нет рекомендаций относительно того, как применять ссылки. Простыми случаями являются случаи, когда С++ 11 явно ссылается на ссылку, например в разделе 3.9.1
Основные типы, которые он говорит:
[...] Подписанные и беззнаковые целые типы должны удовлетворять ограничения, указанные в стандарте C, раздел 5.2.4.2.1.
Но как насчет других случаев, когда нет явной ссылки? Например, С++ 11 использует неопределенное значение слова, но не определяет этот термин. Нормативные ссылки включают:
- ISO/IEC 9899: 1999, Языки программирования - C
[...]
- ISO/IEC 9899: 1999/Cor.3: 2007 (E), Языки программирования - C, Техническое исправление 3
и C99 (черновик стандарта c99) имеет определение неопределенного значения в разделе 3.17.2
, в котором говорится:
либо неопределенное значение, либо ловушечное представление
Можно ли сказать, что неопределенное значение определено С++ 11 ссылкой на C99, например этот ответ, по-видимому, подходит для определения бит? Если да, то что относительно представления ловушки, которое описано в разделе 6.2.6.1
в параграфе 5 в разделе Представления типов в C99?
Щедрое чтение будет состоять в том, что до тех пор, пока ничто в С++ 11 не будет противоречить нормативной ссылке, тогда оно применяется, является ли это правильной интерпретацией? Некоторые ответы на Что такое неопределенное поведение на С++? Как это отличается от поведения undefined?, кажется, подразумевается щедрое чтение, хотя в некоторых ответах язык немного свободен, поэтому трудно сказать, что именно заявляется в некоторых точках.