Spec-Zone.ru › Ada 95
Справочник по Ada 95

12.2 Тела обобщенных единиц

Тело обобщенной единицы (обобщенное тело) — это шаблон для тел экземпляров. Синтаксис обобщенного тела идентичен синтаксису тела необобщенной единицы.

Динамическая семантика

Выполнение обобщенного тела не имеет других последствий, кроме установления возможности дальнейшей инстанциации обобщенной единицы без сбоя в проверке выполнения. Если обобщенное тело является дочерним элементом обобщенного пакета, то его выполнение устанавливает, что каждая соответствующая декларация, вложенная в экземпляр родительского (см. 10.1.1), может быть инстанцирована без сбоя в проверке выполнения.
ПРИМЕЧАНИЯ
4 Синтаксис обобщенных подпрограмм подразумевает, что тело обобщенной подпрограммы всегда является завершением декларации.

Примеры

Пример тела обобщенной процедуры:
procedure Exchange(U, V : in out Elem) is -- см. 12.1
T : Elem; -- обобщенный формальный тип
begin
T := U;
U := V;
V := T;
end Exchange;
Пример тела обобщенной функции:
function Squaring(X : Item) return Item is -- см. 12.1
begin
return X*X; -- формальный оператор "*"
end Squaring;
Пример тела обобщенного пакета:
package body On_Vectors is -- см. 12.1
function Sum(A, B : Vector) return Vector is
Result : Vector(A'Range); -- формальный тип Vector
Bias : constant Integer := B'First - A'First;
begin
if A'Length /= B'Length then
raise Length_Error;
end if;
for N in A'Range loop
Result(N) := Sum(A(N), B(N + Bias)); -- формальная функция Sum
end loop;
return Result;
end Sum;
function Sigma(A : Vector) return Item is
Total : Item := A(A'First); -- формальный тип Item
begin
for N in A'First + 1 .. A'Last loop
Total := Sum(Total, A(N)); -- формальная функция Sum
end loop;
return Total;
end Sigma;
end On_Vectors;


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API