Type conversion 将Standard.Natural转换为Ada.Containers.Count_类型

Type conversion 将Standard.Natural转换为Ada.Containers.Count_类型,type-conversion,containers,ada,Type Conversion,Containers,Ada,我引用了Ada.Containers.Vectors通用包,如下所示: package My_Vectors is new Ada.Containers.Vectors( Element_Type => My_Type, Index_Type => Natural); 比如说,我有一个向量和一个标准。自然值声明: Foo_Vector: My_vectors.Vector; Bar_Natural: Natural := 4; 如果我打电话 Foo_Vector

我引用了Ada.Containers.Vectors通用包,如下所示:

package My_Vectors is new Ada.Containers.Vectors(
    Element_Type => My_Type, 
    Index_Type => Natural);
比如说,我有一个向量和一个标准。自然值声明:

Foo_Vector: My_vectors.Vector;
Bar_Natural: Natural := 4;
如果我打电话

Foo_Vector.Set_Length(Bar_Natural);
我得到以下错误

expected type "Ada.Containers.Count_Type"
found type "Standard.Natural"

有没有一种方法可以让你自然地成为Ada.Containers.Count类型的人?

对不起,我太傻了,没有读到我的错误。我尝试使用以下方法转换自然值:

Ada.Containers.Vectors.Count_Type(Bar_Natural)
这毫无意义 读取错误后,很容易看到Count_类型是在包Ada.Containers中定义的

因此,正确的换算应为:

Ada.Containers.Count_Type(Bar_Natural);
给予

Foo_Vector.Set_Length(Ada.Containers.Count_Type(Bar_Natural));

对不起,我太蠢了,没有读到我的错误。我尝试使用以下方法转换自然值:

Ada.Containers.Vectors.Count_Type(Bar_Natural)
这毫无意义 读取错误后,很容易看到Count_类型是在包Ada.Containers中定义的

因此,正确的换算应为:

Ada.Containers.Count_Type(Bar_Natural);
给予

Foo_Vector.Set_Length(Ada.Containers.Count_Type(Bar_Natural));

谢谢忘了做那件事,因为你只能在一天左右之后做。谢谢。忘了做那件事,因为你只能在一天左右之后做。