如何在Ada中将包作为通用参数?

时间:2015-10-28 08:41:46

标签: ada

我想知道将包传递给泛型函数的语法是什么。我已经尝试了几种方法但没有成功。

代表:

generic
    with package <<SomeThing>> is <>;
    procedure forEach(g: in <<MyType>>);

OR

generic
    with package <<SomeThing>>;
    procedure forEach(g: in <<MyType>>);

OR

generic
    package <<SomeThing>>;
    procedure forEach(g: in <<MyType>>);

1 个答案:

答案 0 :(得分:6)

包必须是通用包的实例(否则编译器不会对包有任何了解)。语法是:

generic
   with package Foo is new Bar (<>);
procedure Foreach (G : Foo.T);

请参阅正式包(Ada Wikibook)上参考手册部分末尾的ARM 12.7和示例。