Ада-95. Компилятор GNAT



         

Правила области видимости для обобщенных ссылочных типов - часть 2


Тогда, для получения ссылочного значения, вместо атрибута 'Access

можно использовать атрибут 'Unchecked_Access, который позволяет получить ссылочное значение без осуществления проверки правил доступа:

procedure Legal_But_Stupid is

type Integer_Access is access all Integer; IA : Integer_Access;

begin

. . . declare

IVar : aliased Integer; begin

IA := IVar'Unchecked_Access; -- это не надежно!!! end; IA.all := IA.all + 1; -- теперь это будет только ВАША ошибка!!! end Legal_But_Stupid;

Следует заметить, что применение атрибута 'Unchecked_Access - не рекомендуется.

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

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

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




Содержание  Назад  Вперед