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

13.9.2 Атрибут Valid

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

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

Для префикса X, обозначающего скалярный объект (после любого неявного разыменования), определён следующий атрибут:
X'Valid
Возвращает True, если и только если объект, обозначаемый X, является нормальным, имеет корректное представление, и при выполнении предыдущих условий значение X также удовлетворяет предикатам номинального типа подтипа X. Значение этого атрибута имеет тип Boolean.
ПРИМЕЧАНИЯ
22 Некорректные данные могут быть созданы в следующих случаях (без учёта ошибок или непредсказуемых действий):
неинициализированный скалярный объект,
результат неявного преобразования,
ввод,
взаимодействие с другим языком (включая машинный код),
прерывание присваивания,
нарушение присваивания из-за неудачи проверки, определённой языком (см. 11.6), и
использование объекта, адрес которого был указан.
23 Определение, является ли X нормальным и имеет ли он корректное представление в рамках оценки X'Valid, не предполагает оценку X; следовательно, проверка валидности объекта, который невалиден или аномален, не является ошибкой. Определение, удовлетворяет ли X предикатам своего номинального подтипа, может включать оценку X, но только после того, как будет установлено, что X имеет корректное представление.
Если X является переменной с volatile-модификатором, оценка X'Valid считается чтением X.
24 Атрибут Valid может использоваться для проверки результата вызова экземпляра Unchecked_Conversion (или любой другой операции, которая может возвращать некорректные значения). Однако также должен быть предусмотрен обработчик исключений, так как реализации допускают поднятие исключений Constraint_Error или Program_Error, если они обнаруживают использование некорректного представления (см. 13.9.1).


Spec-Zone.ru

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