Ada_Ru форум

Обсуждение языка Ада

Требуется консультация

Оставить новое сообщение

Сообщения

Vadim Godunko
Требуется консультация
2005-06-17 11:36:58

Добрый день!

 

В приложенной программе, откомпилированной GNAT-ом, возбуждается исключительная ситуация при выполнении оператора присваивания.

 

Подскажите, пожалуйста, почему?

 

На мой взгляд это ошибка компилятора. :(

Vadim Godunko wrote:

Добрый день!

 

В приложенной программе, откомпилированной GNAT-ом, возбуждается исключительная ситуация при выполнении оператора присваивания.

 

Подскажите, пожалуйста, почему?

 

На мой взгляд это ошибка компилятора. :(

 

Ответ, по-моему, вот тут. RM 95 3.10(9):

 

A view of an object is defined to be aliased if it is defined by

an object_declaration or component_definition with the reserved

word aliased, or by a renaming of an aliased view. In addition,

the dereference of an access-to-object value denotes an aliased

view, as does a view conversion (see 4.6) of an aliased view.

Finally, the current instance of a limited type, and a formal

parameter or generic formal object of a tagged type are defined

to be aliased. Aliased views are the ones that can be designated

by an access value. If the view defined by an object_declaration

is aliased, and the type of the object has discriminants, then

the object is constrained; if its nominal subtype is unconstrained,

^^^^^^^^^^^^^^^^^^^^^^^^^

then the object is constrained by its initial value. Similarly, if the

object created by an allocator has discriminants, the object is

constrained, either by the designated subtype, or by its initial value.

 

То есть тот самый X оказывается constrained, и ему нельзя менять значение

дискриминанта.

Sergey I. Rybin wrote:

 

Ответ, по-моему, вот тут. RM 95 3.10(9):

 

A view of an object is defined to be aliased if it is defined by

an object_declaration or component_definition with the reserved

word aliased, or by a renaming of an aliased view. In addition,

the dereference of an access-to-object value denotes an aliased

view, as does a view conversion (see 4.6) of an aliased view.

Finally, the current instance of a limited type, and a formal

parameter or generic formal object of a tagged type are defined

to be aliased. Aliased views are the ones that can be designated

by an access value. If the view defined by an object_declaration

is aliased, and the type of the object has discriminants, then

the object is constrained; if its nominal subtype is unconstrained,

^^^^^^^^^^^^^^^^^^^^^^^^^

then the object is constrained by its initial value. Similarly, if the

object created by an allocator has discriminants, the object is

constrained, either by the designated subtype, or by its initial value.

 

То есть тот самый X оказывается constrained, и ему нельзя менять значение

дискриминанта.

 

Спасибо!

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти