繁体   English   中英

如何在Ada中为通用的用户定义类型指定特定索引?

[英]How to specify specific index for generic, user-defined type in Ada?

所以我有一个带有用户定义形式参数的通用包:

type element is (<>);

类型是离散的,因为我在整个程序中都将其部分用作索引。 因此,假设我有两个不同的数组,其中一个我可以像这样放置“ element”:

array1 : array (element) of integer;

假设第二个数组的起始索引比array1的索引小一个:

array2 : array (1_less_than_element .. element) of integer;

我如何指定希望array2的索引值比array1小一个?

另外,值得一提的是,我的程序是关于拓扑排序的,一开始我要获得要排序的关系的总数(NR)。 以前,当我认为该程序不必一定是通用的并且一切都将涉及整数时,我只是简单地提出:

array1 : array (1 .. NR) of integer;
array2 : array (0 .. NR) of integer;

但是,现在这是通用的,我不确定如何指定等效项,因为规范似乎表明索引必须是元素类型。

我相信我已经找到了解决方案。 为了后代,我将继续在此处发布答案。 如果我弄错了或者有更好的方法等,请发布和/或让我知道。

由于离散类型是Ada中标量类型的后代,因此它继承了标量类型的属性。 一个这样的属性是Scalar'Pred(Arg:X),它以枚举类型返回X之前的值。 对于数字类型,它基本上只是减少索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM