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


Описание настройки - часть 2


Предвыполнение описания настройки не имеет другого эффекта.

Примеры разделов формальных параметров:

generic -- без параметров

generic

SIZE : NATURAL; -— формальный объект

generic

LENGTH : INTEGER := 200; -— формальный объект с выражением по умолчанию AREA : INTEGER := LENGTH*LENGTH; -— формальный объект с выражением по умолчанию

generic

type ITEM is private; -- формальный тип type INDEX is (<>); -&#x2014; формальный тип type ROW is array (INDEX range <>) of ITEM; -&#x2014; формальный тип with function "<"(X, Y : ITEM) return BOOLEAN; -&#x2014; формальная подпрограмма

Примеры описаний настройки с настраиваемыми подпрограммами:

generic

type ELEM is private;

procedure EXCHANGE (U, V : in out ELEM);

generic

type ITEM is private;

with function "*"(U, V : ITEM) return ITEM is <>; function SQUARING(X : ITEM) return ITEM;

Пример описания настройки с настраиваемым пакетом:

generic

type ITEM is private;

type VECTOR is array (POSITIVE range <>) of ITEM; with function SUM(X, Y : ITEM) return ITEM; package ON_VECTORS is

function SUM (А. В : VECTOR) return VECTOR; function SIGMA (A : VECTOR) return ITEM; LENGTH_ERROR : exception;

end;

Примечание.

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

new

в (рекурсивной) конкретизации настройки.

Выражение, которое находится в разделе формальных параметров настройки, &#x2014; это выражение по умолчанию для формального параметра вида

in,

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




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