Модератор: Модераторы
qivi писал(а):совместимость с делфи один из тормозов развития FPC+Lazarus
Да, кстати, если реализовать в компиляторе учет области видимости объектов, то это сделает возможным реализацию тех же строк самостоятельно: компилятор сам вызовет у объекта метод инициализации и деинициализации (не "конструктор и деструктор", а спец. методы при вхождении/выходе из области видимости).
wavebvg писал(а):компилятор сам вызовет у объекта метод инициализации и деинициализации (не "конструктор и деструктор", а спец. методы при вхождении/выходе из области видимости).
Дож писал(а):Это на самом деле вообще Killer Feature, которая открывает новые возможности при разработке своих библиотек.
kazalex писал(а):Никакие спец. методы при входе/выходе в/из область видимости не нужны. Нужны дефолтные конструктор с деструктором + оператор копирования, вызываемый как при явном, так и при неявном копировании.
Am 08.02.2015 22:08 schrieb "Maciej Izak" <hnb.code@gmail.com>:
> To achieve this I need to create new special record operators:
>
> ====== code begin ======
> {$MODESWITCH MANAGEMENTOPERATORS}
>
> TValue = record
> ...
> class operator Initialize(Data, TypeInfo: Pointer): pointer;
> class operator Finalize(Data, TypeInfo: Pointer): pointer;
> class operator Copy(Source, Dest, TypeInfo: Pointer): pointer;
> end;
> ====== code end ======
This is /really/ bad design. If you want such operators they would need to be defined like this:
TValue = record
...
class operator Initialize(var aRec: TValue);
class operator Finalize(var aRec: TValue);
class operator Copy(constref aSource: TValue; var aDest: TValue);
end;
====== code end ======
Regards,
Sven
hinst писал(а):опять желающие сделать из FreePascal ололо-C++ набигают! Кошмар! так нельзя! чем проще тем лучше!
hinst писал(а):а если делать всякие такие фичи, всё только ещё усложнится! вон строки в 3.х уже испортили!
kazalex писал(а):И перекодируемые строки, кстати, тоже классная штука, зря её из дельфей выпилили.
hinst писал(а):опять желающие сделать из FreePascal ололо-C++ набигают!
hinst писал(а):Кошмар! так нельзя! чем проще тем лучше!
SSerge писал(а):Это как выпилили? И когда?
wavebvg писал(а):1. Блок декларации выделен, знаит неопнятно, вызывать это дело сразу после входа в блок или ждать первого обращения.
3. Нужно как-то передать параметры инициализации
4. При выходе из области видимости не всегда нужно всё поудалять
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2