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