Bas*_*ond 1 containers ada type-conversion
我实例化了Ada.Containers.Vectors通用包,如下所示:
package My_Vectors is new Ada.Containers.Vectors(
Element_Type => My_Type,
Index_Type => Natural);
Run Code Online (Sandbox Code Playgroud)
说,我有一个向量和Standard.Natural值声明:
Foo_Vector: My_vectors.Vector;
Bar_Natural: Natural := 4;
Run Code Online (Sandbox Code Playgroud)
如果我打电话
Foo_Vector.Set_Length(Bar_Natural);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
expected type "Ada.Containers.Count_Type"
found type "Standard.Natural"
Run Code Online (Sandbox Code Playgroud)
有没有办法将Bar_Natural转换为Ada.Containers.Count_Type?
对不起,我真的太傻了,实际上读过我的错误所说的一切.我尝试使用以下方法转换自然:
Ada.Containers.Vectors.Count_Type(Bar_Natural)
Run Code Online (Sandbox Code Playgroud)
这没有任何意义! 阅读错误,看到Count_Type在包Ada.Containers中定义是微不足道的.
因此,正确的转换将是:
Ada.Containers.Count_Type(Bar_Natural);
Run Code Online (Sandbox Code Playgroud)
给予
Foo_Vector.Set_Length(Ada.Containers.Count_Type(Bar_Natural));
Run Code Online (Sandbox Code Playgroud)