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

C.5 Директива Discard_Names

Директива Discard_Names может быть использована для уменьшения объёма памяти, используемой для хранения имён некоторых сущностей.

Синтаксис

Форма директивы Discard_Names следующая:
pragma Discard_Names[([On => ] local_name)];
Директива Discard_Names разрешена только непосредственно внутри declarative_part, непосредственно внутри package_specification или в качестве конфигурационной директивы.

Правила легальности

Идентификатор local_name (если он присутствует) должен обозначать простую подтип перечисления, простой подтип помеченного типа или исключение. Директива применяется к типу или исключению. Без local_name директива применяется ко всем таким сущностям, объявленным после директивы в том же блоке объявления. В качестве альтернативы, директива может использоваться как конфигурационная директива. Если директива применяется к типу, то она также применяется ко всем потомкам этого типа.

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

Если указан local_name, то директива Discard_Names является директивой представления.
Если директива применяется к типу перечисления, то семантика атрибутов Wide_Wide_Image и Wide_Wide_Value для этого типа определяется реализацией; семантика атрибутов Image, Wide_Image, Value и Wide_Value всё ещё определяется через Wide_Wide_Image и Wide_Wide_Value. Кроме того, семантика Text_IO.Enumeration_IO определяется реализацией. Если директива применяется к помеченному типу, то семантика функции Tags.Wide_Wide_Expanded_Name для этого типа определяется реализацией; семантика функций Tags.Expanded_Name и Tags.Wide_Expanded_Name всё ещё определяется через Tags.Wide_Wide_Expanded_Name. Если директива применяется к исключению, то семантика функции Exceptions.Wide_Wide_Exception_Name для этого исключения определяется реализацией; семантика функций Exceptions.Exception_Name и Exceptions.Wide_Exception_Name всё ещё определяется через Exceptions.Wide_Wide_Exception_Name.

Рекомендации для реализации

Если директива применяется к сущности, то реализация должна уменьшить объём памяти, используемой для хранения имён, связанных с этой сущностью.


Spec-Zone.ru

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