Справочник по Ada 95
4.3 Агрегаты
Агрегат объединяет значения компонентов в составное значение типа массива, записи или расширения записи.
Синтаксис
aggregate ::= record_aggregate | extension_aggregate | array_aggregate
Правила разрешения имен
Ожидаемый тип для агрегата должен быть одним нелимитированным типом массива, записи или расширения записи.
Правила легальности
Агрегат не должен быть типа класса.
Динамические семантика
Для вычисления агрегата создается анонимный объект, и значения для компонентов или предковой части получаются (как описано в последующем подпункте для каждого вида агрегата) и присваиваются соответствующим компонентам или предковой части анонимного объекта. Получение значений и присвоения происходят в произвольном порядке. Значение агрегата — это значение этого объекта.
Если агрегат имеет помеченный тип, выполняется проверка, принадлежит ли его значение первому подтипу типа. Если эта проверка не пройдена, генерируется исключение Constraint_Error.