正是标题所要求的。我正在浏览一些Ada代码并遇到
generic type X is (<>);
Run Code Online (Sandbox Code Playgroud)
这是什么意思?它类似于C ++模板参数吗?
在阿达一个普通的或者是一个package,procedure或者function,与一个或多个形式参数。形式参数可以是对象,类型,包或子程序。实例化泛型时,必须提供所有形式参数的实际值。
generic
type X is (<>); -- formal parameter
procedure Foo(Item : in X);
Run Code Online (Sandbox Code Playgroud)
在此声明中Foo是通用的,并且X是形式参数。这(<>)意味着在实例化时Foo,for的实际值X必须是离散类型(有符号整数类型,模数类型或枚举类型):
procedure Bar is new Foo(Character);
Run Code Online (Sandbox Code Playgroud)
Bar现在是通用过程的实例Foo,可以用type参数来调用Character:
Bar('@');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |