переопределение операторов Вход,Копия,Выход для записей

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

переопределение операторов Вход,Копия,Выход для записей

Сообщение sajtran » 04.02.2015 10:42:29

Добрый день всем
Можно ли на данный момент в fpc задать операторы выполняющиеся при

1. вход переменной в область видимости (н-р тип String при входе в процедуру инициируются nil)
2. создании копии, т.е. присвоения одной переменной другой
3. выходе переменной из области видимости
???


т.е. то, что сейчас делается автоматом для типа String, Variant, интерфейсов
PS: интересуют Record и Object декларации
sajtran
незнакомец
 
Сообщения: 5
Зарегистрирован: 05.10.2013 14:54:38
Откуда: Nizhnevartovsk

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение Дож » 04.02.2015 10:59:40

1. Нет
2. Нет (если речь про переменные одного типа)
3. Нет
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение sajtran » 04.02.2015 13:21:05

печально ...
интересно каким хаком variant сделали
sajtran
незнакомец
 
Сообщения: 5
Зарегистрирован: 05.10.2013 14:54:38
Откуда: Nizhnevartovsk

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение Лекс Айрин » 04.02.2015 14:03:07

sajtran, а никто не запрещает переопределить сами операторы. Да и тип Variant это объект, у которого есть своя область видимости.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение Дож » 04.02.2015 14:09:06

sajtran писал(а):печально ...
интересно каким хаком variant сделали

Это называется Compiler Magic :)

Код: Выделить всё
{$MODE OBJFPC}
uses
  variants;

var
  A, B: Variant;

begin
  A := ParamStr(1);
  B := A;
  Writeln(B);
end.


У меня подставляются SYSTEM_$$_assign$ANSISTRING$$VARIANT и fpc_variant_copy:
Код: Выделить всё
# [9] A := ParamStr(1);
    leaq    -136(%rbp),%rax
    movl    $1,%esi
    movq    %rax,%rdi
    call    OBJPAS_$$_PARAMSTR$LONGINT$$ANSISTRING
    movq    -136(%rbp),%rsi
    leaq    -128(%rbp),%rdi
    call    SYSTEM_$$_assign$ANSISTRING$$VARIANT
    leaq    -128(%rbp),%rsi
    movq    $U_$P$PROGRAM_$$_A,%rdi
    call    fpc_variant_copy
# [10] B := A;
    movq    $U_$P$PROGRAM_$$_A,%rsi
    movq    $U_$P$PROGRAM_$$_B,%rdi
    call    fpc_variant_copy
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение sajtran » 04.02.2015 14:55:30

ещё более печально
очень трудно будет использовать свою вариантную запись
странно что такой возможности нет
sajtran
незнакомец
 
Сообщения: 5
Зарегистрирован: 05.10.2013 14:54:38
Откуда: Nizhnevartovsk

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение kazalex » 04.02.2015 16:28:33

sajtran писал(а):странно что такой возможности нет

Сходи к абракадабре и проголосуй (vote, не rate) за эти (1, 2, 3) фич-риквесты. Чем быстрее абракадабра их реализует (а разговоры о кастомных конструкторах и деструкторах для записей тянутся со времён Delphi 2009), тем быстрее они появятся в FPC, иначе не дождёшся.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение SSerge » 04.02.2015 16:39:15

kazalex писал(а):Сходи к абракадабре и проголосуй


Или сделай сам (С). Исходный код компилятора никто не скрывает.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение kazalex » 04.02.2015 16:51:07

SSerge писал(а):Или сделай сам (С)

А потом ещё докажи тиму, что твой патчик нужно принять.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение qivi » 05.02.2015 12:12:42

kazalex писал(а):Сходи к абракадабре и проголосуй (vote, не rate) за эти (1, 2, 3) фич-риквесты. Чем быстрее абракадабра их реализует (а разговоры о кастомных конструкторах и деструкторах для записей тянутся со времён Delphi 2009), тем быстрее они появятся в FPC, иначе не дождёшся.


kazalex писал(а):А потом ещё докажи тиму, что твой патчик нужно принять.


Вот оно как бывает в 16 лет, если при рождении пуповину не отрезать.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение kazalex » 05.02.2015 12:46:34

qivi, сказать-то чего хотел?
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение Vadim » 05.02.2015 12:51:05

kazalex писал(а):qivi, сказать-то чего хотел?

Что дельфи маст дай. :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение kazalex » 05.02.2015 13:35:30

Vadim, а я уж о плохом подумал :mrgreen:
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение qivi » 05.02.2015 13:44:34

kazalex писал(а):qivi, сказать-то чего хотел?

Ровно то что сказал, совместимость с делфи один из тормозов развития FPC+Lazarus, это так же ненужный рамочный ограничитель, а так же не все тенденции развития делфи хотелось бы видеть в FPC+Lazarus.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: переопределение операторов Вход,Копия,Выход для записей

Сообщение Дож » 05.02.2015 13:46:55

Согласен с предыдущим оратором.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

След.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru