MG>Статья:
MG>Ускоренная обработка данных типа Variant в DelphiАвтор(ы): Maksim Gumerov
Дата: 18.03.2005
На примере ускорения обработки данных типа Variant в Delphi автор рассматривает более широкую проблему ускорения динамической диспетчеризации вызовов в статически типизированных языках.
MG>Аннотация:
MG>На примере ускорения обработки данных типа Variant в Delphi автор рассматривает более широкую проблему ускорения динамической диспетчеризации вызовов в статически типизированных языках.
В чем смысл усложнения простого решения проблемы ?
Если автор статьи предполагает некую информированность о постоянстве типов обрабатываемых Variant'ов, то какой смысл подменять вызовы операций для обработки ? Не проще ли перенести данные в локальные переменные (возможно, сгруппированные в цельный логически обоснованный объект) и пользоваться ими, а потом вернуть их обратно в варианты ? Опять же предлагаемый метод иллюстрации подмены операции сложения удачен был бы для языка с возможностью перегрузки операций (C++), в статье же выглядит крайне неуклюже. Проще было бы ввести наподобие :
TVarBoost....
IntPtr: Pointer;
function GetAsInt:Integer;
procedure SetAsInt(v:Integer);
public
property IntVal:Integer read GetAsInt write SetAsInt;
...
end;
function TForm1.GetAsInt():Integer;
begin
Result:=Integer(IntPtr^);
end;
procedure TForm1.SetAsInt(p:Integer);
begin
Integer(IntPtr^):=p;
end;
Да и вообще новизны в статье, увы, немного. Графоманство какое-то