Denis
Как считаете, допустимо ли использовать Type_Invariant для преобразования строк в значения с помощью атрибута 'Value?
Задача: надо прочитать целочисленные значения из строк. Но тип для чисел не описывается обычным range, а описывается сложной функцией с остатками от деления, диапазонами и т. д.
И вроде как напрашивается описать такой тип с помощью Type_Invariant и читать его из строк обычным 'Value. И ввод от ошибок защищён и внутри программы отслеживается всё. Но как-то вот останавливает то, что включается это всё отдельным ключом -gnata, исключение кидается а случае ошибки не Constraint_Error, а Assert_Failure. Как-то всё это скорее отладкой попахивает, а не штатным инструментом...
Type_Invariant не помешает, хотя бы сделает явным задуманные ограничения на значения типа. Но явную проверку после преобразование я бы тоже остакил. Ведь можно сделать функцию From_String и не использовать T'Value