所以,免责声明,我现在只使用Ada几个星期……我希望有一个noob错误导致这个。
所以(匿名)代码我有……
与Ada.Text_IO;使用Ada.Text_IO;
与阿达….
的定义 Bounded_Synchronized_Queue 是
protected type Queue (Capacity : Count_Type := Default_Capacity; Ceiling : System.Any_Priority := Default_Ceiling) with Priority => Ceiling is new Queue_Interfaces.Queue
看起来GNAT正在尝试为数组大小的所有潜在排列分配大小,从而导致类型非常大的类型。由于这是一种有限的类型,我不确定它是否仍然必须这样做(所以可能是一个错误)。
您可以通过更改声明来修复它 判别 有具体的 约束 :
-- create an array of queues Queue_Array : array(ID_Type) of ID_Holder_Queue.Queue (Capacity => 16, Ceiling => System.Priority'Last);
和系统;
这应该会删除您的存储错误。 这个 如果您使用GNAT编译器可能是相关的。