Я хочу иметь контейнер с расширенным тегом. Пример. :Контент Ada в расширенном методе
type Root is abstract tagged private;
package Queue_Interface
is new Ada.Containers.Synchronized_Queue_Interfaces
(Element_Type => Ada.Strings.Unbounded.Unbounded_String);
package Queue_Factory
is new Ada.Containers.Bounded_Synchronized_Queues
(Queue_Interfaces => Queue_Interface,
Default_Capacity => 50);
type Child is new Root with record
Trace_Queue : Queue_Factory.Implementation.List_Type(50);
end record;
Когда я пытаюсь скомпилировать этот код у меня есть следующее сообщение об ошибке: «расширение nonlimited типа не может иметь ограниченные компоненты»
Я не могу изменить объявление типа Root это тип в зависимость. Как вставить контейнер в тегированный тип?
Если вы хотите, чтобы ограниченный компонент («ограниченный» запрещал назначение, для начала) в расширенном типе, вам также необходимо ограничить корневой тип, как в «тип Root - абстрактный тегированный ограниченный частный». –