Цитата
То есть константы считаются не компилятором, а программой при старте?
Ada.Calendar.Clock - это все-таки функция. То есть, ты хочешь, чтобы при компиляции еще и вызывались функции, и результат их работы запоминался как обычная константа? Этого не было и не будет никогда.
Для простых типов данных - да, компилятор в состоянии описать настоящую константу. Для сложных - нет. Как я могу, скажем, получить
истинную константу для Unbounded_String, если мне для этого надо
вызвать процедуру Initialize? Только на этапе запуска программы... А вот для Ch : constant Character := 'A'; проблем не будет - для символов ничего не надо выполнять, компилятор подставит сразу нужное значение, еще в compile-time...