![]() |
![]() |
volvo |
![]()
Сообщение
#1
|
Гость ![]() |
Привет всем.
Сегодня наткнулся на непонятное (с точки зрения Паскаля) поведение FPC. Вот такой простейший код, совершенно корректно отрабатывающий в Турбо Паскале: type Попробуйте без его компиляции и запуска определить, что будет выведено на печать. А потом запустите на выполнение... ![]() Так что осторожнее с множествами... |
![]() ![]() |
Archon |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Delphi не ругается ни при выключенном RangeCheck, ни при включенном. При операциях с числами аргументы приводятся к большему диапазону, так-что я не вижу смысла в случае с множествами поступать иначе.
-------------------- Close the World...txeN eht nepO
|
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
При операциях с числами аргументы приводятся к большему диапазону, так-что я не вижу смысла в случае с множествами поступать иначе. То, что ты его не видишь, не значит, что его нет )). Я уже привел ситуацию, когда такое поведение может быть полезным. Что касается больший/меньший диапазон - это неправильное проектирование числовых свойств на множества. Мне это тоже сначала пришло в голову, потом я покрутил в мозгах и понял, что это совсем разные вещи. В числах диапазон - это, как правило, ограничение, наложенное вычислительными возможностями. А тут ты можешь задатьtak = set of 'a'..'k'; - и причиной для этого может быть именно отслеживание диапазона средствами компилятора на этапе отладки. Всякое "приведение, исходя из здравого смысла" тут неуместно. Арчон, ты в ладах с граматиками и т.п. stuff'ом, ты должен это понять (или строго доказать мне обратное)). Молчание volvo я склонен воспринимать как согласие со мной (если, конечно, он не супер занят на другом фронте)). Зная его нелюбовь признавать свои ляпы (очень редкие, правда), я полагаю, что он просто отмалчивается.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 14:24 |