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

Hov*_*egy 2 ada

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

例如:

generic
    with package <<SomeThing>> is <>;
    procedure forEach(g: in <<MyType>>);
Run Code Online (Sandbox Code Playgroud)

要么

generic
    with package <<SomeThing>>;
    procedure forEach(g: in <<MyType>>);
Run Code Online (Sandbox Code Playgroud)

要么

generic
    package <<SomeThing>>;
    procedure forEach(g: in <<MyType>>);
Run Code Online (Sandbox Code Playgroud)

man*_*iot 6

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

generic
   with package Foo is new Bar (<>);
procedure Foreach (G : Foo.T);
Run Code Online (Sandbox Code Playgroud)

请参阅Ada Wikibook以及正式软件包(ARM 12.7)参考手册部分末尾的示例.