там написано, что *можно было бы* сделать 'procedure Assign(Target : in out Controlled; Source : in out Controlled);' или даже что нибудь типа 'procedure ":="(Target : in out Controlled; Source : in out Controlled);' и было бы круто, однако это бы *не работало* с unconstrained discriminated величинами т.к. дискриминант невозможно изменить дискриминант индивидуально.
собственно поэтому видимо и не сделали...
----- Original Message -----
From: Ivan Levashew
Sent: Friday, July 13, 2007 4:00 PM
Subject: Re: [ada_ru]Высвобождениепамяти.
sve <pyfqrf <at> hotmail.com> writes:
http://www.adaic.com/standards/05aarm/html/AA-7-6.html
> Reason: An alternative design for user-defined assignment
> might involve an Assign operation instead of Adjust:
> 17.b
> procedure Assign(Target : in out Controlled; Source : in out Controlled); > 17.c
> Or perhaps even a syntax like this:
> 17.d
> procedure ":="(Target : in out Controlled; Source : in out Controlled);
Не проверял, реализовано в gnat или нет.
On Fri, 13 Jul 2007 18:16:06 +0400, you wrote:
там написано, что *можно было бы* сделать 'procedure Assign(Target : in out Controlled; Source : in out Controlled);' или даже что нибудь типа 'procedure ":="(Target : in out Controlled; Source : in out Controlled);' и было бы круто, однако это бы *не работало* с unconstrained discriminated величинами т.к. дискриминант невозможно изменить дискриминант индивидуально.
Можно конечно, но не просто так как в "proposal". Нужно расщепить присваивание на большее количество частей. В частности, для вычисления из правой части, дискриминантов и других ограничений левой части, до размещения в памяти.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти