Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

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

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

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

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

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

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

Примеры

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


Spec-Zone.ru

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