Re[6]: Откуда эта лютая любовь к знаковым целым?
От: Mystic Artifact  
Дата: 07.05.20 22:13
Оценка: 5 (1)
Здравствуйте, Erop, Вы писали:

E>PTRDIFF_MIN -- вообще странно использовать как просто число. Это же специальный тип, для специальных целей...


Откровенно говоря в C++ слишком много типов для всего подряд в предположении что, что-то может быть и не так. Но нет кода не требующего изменений пережившего бы серьезную смену разрядности или архитектуру. Это все "бычий бред".
И это твое выражение — яркий тому пример. Любой двоичный тип данных может быть выражен как просто число. Адрес — это просто число. Это мантра. Повторяй до просветления... При чем за счет ограничения по разрядам — они естественным образом являются и знаковыми и беззнаковыми. Зависит от точки отсчета / аля смысла в них приданного разработчиком. Если же ptrdiff это намек на сегментацию — то C++ с ними не умел и не умеет работать. Да и если вычесть указатели в разных сегментах = безтолковость.
На практике это выливается в то, что (не лично к тебе) вы страдаете какой-то неведомой херней, тема тому доказательство, объясняя какие-то невообразимые вещи. При этом, упорно игнорируя тот факт, что и беззнаковые и знаковые на большинстве операций (т.е. +/-) не отличимы в заданной разрядности регистров. Я это уже выше сказал... просто там дописал позже. В чем спор то?
Тип данных должен ограничивать (или позволять/определять) возможные значения. Вместо этого мы получаем псевдооптимизации за счет андеф. Это херня полная. Если компиляторы так умны — то вместо int/uint подойдет number из JS. Отличный тип — он и int32 и double, а там думайте дальше сами.
Это я все к чему вел. Ненавижу людей, которые начинают рассказывать про странно использовать как число. Адрес — это число. Для тех кто не понял — могу лично повторить. Он измеряется в известных единицах. Межсегментный диф возможен, но он логически в общем случае не будет иметь никакого смысла. А в плоской модели — он будет равен точно заданным координатам солнца. А в реалиях — разнице вычтаемых адресрв в числовом виде.
Итого: выбросьте свою чушь из головы свою C++-ную про херотипы (желательно вместе с вездесущим size_t). Абстракции даются, не для того, что бы абстрагироваться от реального мира, они даются наоборот, подогнать реальный мир, под убогую модель. Вы же, упорно ставите все с ног на голову.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.