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


Конкретизация настройки - часть 4


Примеры использования конкретизированных модулей:

SWAP(A, 8); А := SQUARE(A); Т : TABLE(1 .. 5) := (10, 20, 30, 40, 50); N : INTEGER := INT_VECTORS.SIGMA(T); -- 150 (CM. 12.2)

use INT_VECTORS; М : INTEGER := SIGMA(T); -— 150

Примечание.

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

Если две совмещенные подпрограммы описаны в спецификации настраиваемого пакета и различаются только (формальным) типом параметров и результата, то существуют'правильные конкретизации, для которых все вызовы этих подпрограмм вне экземпляра будут неоднозначными. Например:

generic

type A is (<>); type В is private;

package G is

function NEXT(X : A) return A; function NEXT(X : B) return B; end;

package P is new G(A => BOOLEAN. B => BOOLEAN); -&#x2014; все вызовы P.NEXT неоднозначны

Ссылки:

вид

in

12.1.1, вид

in out

12.1.1, видимость 8.3, вызов подпрограммы 6.4, выражение 4.4, вычисление 4.5, глобальное описание 8.1, дискриминант 3.7.1, знак операции 6.1, идентификатор 2.3, имя 4.1, имя входа 9.5, имя подпрограммы 6.1, локальное описание 8.1, неявное описание 3.1, обозначение 6.1, обозначение типа 3.3.2, описание 3.1, описание подтипа 3.3.2, операция типа 3.3, описание формального параметра настройки 12.1, пакет 7, переменная 3.2.1, подпрограмма 6, понятие 3.1, предвыполнение 3.1, 3.9, простое имя 4.1, совмещение 6.6, 8.7, формальная подпрограмма настройки 12.1, формальный объект настройки 12.1, формальный параметр настройки 12.1, формальный тип настройки 12.1.

12.3.1. ПРАВИЛА СОПОСТАВЛЕНИЯ ДЛЯ ФОРМАЛЬНЫХ ОБЪЕКТОВ

Формальному параметру настройки вида

tn

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

in,

то проверяется принадлежность значения выражения подтипу, заданному обозначением типа, как и для явного описания константы (см. 3.2.1).




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