Справочное руководство по языку Ада-83


Преобразование типа - часть 2


Если обозначение типа задает неограниченный индексируемый тип, то для каждой позиции индекса границы результата преобразования определены преобразованием границ операнда в значения соответствующего типа индекса целевого типа. Если обозначение типа задает ограниченный индексируемый тип, то границы результата совпадают с границами, указанными в обозначении типа. В обоих случаях значение каждой компоненты результата определяется соответствующей компонентой операнда (см. 4.5.2).

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

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

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

in out

или

out

имеет форму преобразования типа имени (переменной), как это поясняется в разд. 6.4.1.

Единственной допустимой формой неявного преобразования типа является преобразование значения

универсального-целого

или

универсального-вещественного

типов в значение другого числового типа. Неявное преобразование операнда

универсального-целого

типа в другой целый тип или операнда

универсального-вещественного

типа в другой вещественный тип возможно только для операнда, являющегося либо числовым литералом, либо именованным числом, либо атрибутом; в этом разделе такой операнд называется




Начало  Назад  Вперед



Книжный магазин