Справочник по Ada (Ada 2022)
H.1 Предикат Normalize_Scalars
Этот предикат гарантирует, что неинициализированный скалярный объект будет установлен на предсказуемое значение, но вне допустимого диапазона, если это возможно.
Синтаксис
Форма предиката Normalize_Scalars выглядит следующим образом:
pragma Normalize_Scalars;
Правила после компиляции
Предикат Normalize_Scalars является конфигурационным предикатом. Он применяется ко всем единицам_компиляции, включённым в раздел.
Требования к документации
Если применяется предикат Normalize_Scalars, реализация должна документировать неявные начальные значения для скалярных подтипов и должна указать каждый случай, в котором такое значение используется и не является недопустимым представлением.
Рекомендации по реализации
Всякий раз, когда это возможно, неявные начальные значения для скалярного подтипа должны быть недопустимым представлением (см. 13.9.1).
ПРИМЕЧАНИЕ 1 Требование инициализации применяется к неинициализированным скалярным объектам, которые являются подкомпонентами составных объектов, к выделенным объектам и к автономным объектам. Оно также применяется к скалярным параметрам out. Скалярные подкомпоненты составных параметров out инициализируются соответствующей частью фактического значения в силу 6.4.1.
ПРИМЕЧАНИЕ 2 Требование инициализации не применяется к скаляру, для которого указан предикат Import, так как инициализация импортированного объекта выполняется исключительно средой внешнего языка (см. B.1).
ПРИМЕЧАНИЕ 3 Использование предиката Normalize_Scalars в сочетании с предикатом Restrictions(No_Exceptions) может привести к ошибочному выполнению (см. H.4).