- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
type Table = record
f1, f2, f3, f4, f5: integer;
end;
procedure Sort(a: array of Table; L, R: integer; Shift: integer);
begin
// что-то там...
// сравнение элементов:
if pinteger(size_t(@a[i])+Shift)^ < pinteger(size_t(@a[j])+Shift)^
end;
Chaos Optima, это ты, да?
Объясняю - это был ответ на вопрос, как без шаблонов сделать сортировку массиву структур по любому полю типа integer.
И вообще я так понимаю этот код написан исключительно в академических целях
В реале в таких местах я применяю что-то типа
if Key(a[i]) < Key(a[j]) then...
Key - функция, применяемая в качестве параметра.
Как раз наоборот. Вам пришлось так написать из-за дельфей, в которых нет шаблонов лямбд.
А это было написано для примера.
Излишняя уверенность/упёртость весьма пагубно влияет на людей.
Даже у нас в захолустном городишке можно найти людей, обученных писать в соответствии с кодеконвеншеном, принятом на предприятии. Этому можно научить даже последнюю макаку.
Поглядите вон на язык, который спроектирован специально, что-бы на нём не говнокодили - ВисуалБейсик. Он даже отступы за программиста расставляет. И какой код на этом языке получается?
Зачот
Имея возможность работать с данными на низком уровне - всегда будет возможность написать какой-то извратный код.
На С, например, подобный код - норма, поэтому на С подобный код сюда бы не попал.
Но зато на нем не напишешь какие-то системные вещи.
Дельфи же все это позволяет. и то что на нем возможно писать подобный код - не является минусом языка, скорее наоборот, т.к. на дельфи можно писать как на языке высокого уровня, так и на низком уровне.