Шрифт:
Упаковка битовых полей в виде слова слева направо приводит к следующему формату (см. раздел 25.5.5).
Битовое поле не обязано иметь имя, но если его нет, то к нему невозможно обратиться. Как это ни удивительно, но упаковка многих небольших значений в отдельное слово не всегда экономит память. На самом деле использование одного из таких значений приводит к излишнему расходу памяти по сравнению с использованием типа
A.12.6. Объединения
Объединение (union) — это класс, в котором все члены расположены в одной и той же области памяти. В каждый момент времени объединение может содержать только один элемент, причем считывается только тот элемент объединения, который был записан последним. Рассмотрим пример.
Правила согласованного чтения и записи членов объединения компилятором не проверяются. Мы вас предупредили.
A.13. Шаблоны
Шаблон (template) — это класс или функция, параметризованные набором типов и/или целыми числами.
В списке шаблонных аргументов ключевое слово
Целочисленные шаблонные аргументы должны быть константными выражениями.
A.13.1. Шаблонные аргументы
Аргументы шаблонного класса указываются каждый раз, когда используется его имя.
Аргументы шаблонной функции обычно выводятся из ее аргументов.
Можно объявить шаблонную функцию, для которой невозможно вывести ее шаблонные аргументы. В этом случае мы должны конкретизировать шаблонные аргументы явно (точно так же, как для шаблонных классов). Рассмотрим пример.