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

7.4 Отложенные константы

Объявления отложенных констант могут использоваться для объявления констант во видимой части пакета, но значение константы задаётся в закрытой части. Они также могут использоваться для объявления констант, импортированных из других языков (см. Приложение B).

Правила допустимости

Объявление отложенной константы — это объявление_объекта с ключевым словом constant, но без выражения инициализации. Константа, объявленная с помощью объявления отложенной константы, называется отложенной константой. Объявление отложенной константы требует завершения, которое должно быть полным объявлением константы (называемым полным объявлением отложенной константы) или pragma Import (см. Приложение B).
Объявление отложенной константы, завершённое полным объявлением константы, должно находиться непосредственно внутри видимой части спецификации_пакета. В этом случае к соответствующему полному объявлению применяются следующие дополнительные правила:
  • Полное объявление должно находиться непосредственно внутри закрытой части того же пакета;
  • Отложенная и полная константы должны иметь один и тот же тип или иметь статически совместимые анонимные типы доступа;
  • Если объявление отложенной константы включает указание_типа_подтипа, которое определяет ограниченный подтип, то подтип, определённый указанием_типа_подтипа в полном объявлении, должен статически ему соответствовать. С другой стороны, если подтип отложенной константы неограничен, то полное объявление всё ещё может наложить ограничение. Сама константа будет ограничена, как и все константы;
  • Если объявление отложенной константы включает ключевое слово aliased, то полное объявление также должно;
  • Если подтип объявления отложенной константы исключает значение null, то подтип полного объявления также должен исключать значение null.
Объявление отложенной константы, завершённое pragma Import, не обязательно должно появляться в видимой части спецификации_пакета и не имеет полного объявления константы.
Завершение объявления отложенной константы должно произойти до того, как константа будет заморожена (см. 13.14).

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

Выполнение объявления отложенной константы выполняет указание_типа_подтипа или (допускается только в случае импортированной константы) определение_типа_массива.
ПРИМЕЧАНИЯ
13 Полное объявление отложенной константы, которая имеет заданный закрытый тип или закрытое расширение, не разрешается до соответствующего полного_объявления_типа. Это следствие правил заморозки типов (см. 13.14).

Примеры

Примеры объявлений отложенных констант:
Null_Key : constant Key; -- см. 7.3.1
CPU_Identifier : constant String(1..8);
pragma Import(Assembler, CPU_Identifier, Link_Name => "CPU_ID");
-- см. B.1


Spec-Zone.ru

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