Ada_Ru форум

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

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

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

Сообщения

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

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

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

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

[ Attachment content not displayed ]
Sergey I. Rybin
Re: [ada_ru] Требуется консультация
2005-06-17 12:53:08
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, и ему нельзя менять значение
дискриминанта.
Vadim Godunko
Re: [ada_ru] Требуется консультация
2005-06-20 04:42:07
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

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