Распознание типов в Run time

softmaker
Дата: 18.05.2011 15:32:20
function GetItem(idx: integer): variant;
function GetItem(idx : integer) : pointer;
Параметр тот же. Обоснуй ещё раз...
Gust2002
Дата: 18.05.2011 15:45:27
softmaker,

1) А каким образом компилятор должен сделать корректное приведение типов для такой ситуации?
2) Почему некорректное использование языка программирования обозначается как "А оверлоад'ы - универсальность хренова"?
Gust2002
Дата: 18.05.2011 15:46:35
Когда писал "Товарищ, вы ошибаетесь." даже не мог представить, что предполагается такое использование...
softmaker
Дата: 18.05.2011 15:51:50
Кроик Семён предложил сэкономить на одной строке кода, превратив процедуру в функцию.
А подобная функция уже есть с комментарием "чтобы не делать явного преобразования типов для объектов".
А то, что для каждого типа, который захочется юзать надо будет ещё overload'ов добавлять - это да...

Ок. Благодарю всех участников обсуждения. Будут ещё мысли - милости просим.
Gust2002
Дата: 18.05.2011 16:04:56
softmaker,

Таки возвращаясь к вопросу "Может как нибудь в Run time можно отличить что находится по указателю на ячейку памяти объект или нет." следует понимать, что в памяти помимо самого значения должна содержаться и информация о его типе. Если говорить об RTTI, то, насколько я понимаю, она доступна только для объектов, которые помечены директивой {M+}, поэтому для простых типов нужно делать обертки-наследники TObject. Если этого делать не хочется, тогда можно, например, в List-е хранить не значения, а записи <тип значения, указатель>...
softmaker
Дата: 18.05.2011 16:12:21
Что и сделал...
debose
Дата: 19.05.2011 11:04:44
Топикстартер, а версия Delphi-то какая используется?
softmaker
Дата: 19.05.2011 11:25:56
Седьмая. Не development studio.