2017-03-08 17 views
1

我实例化的Ada.Containers.Vectors通用包这样的:转换Standard.Natural到Ada.Containers.Count_Type

package My_Vectors is new Ada.Containers.Vectors(
    Element_Type => My_Type, 
    Index_Type => Natural); 

说,我有一个载体和Standard.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" 

有没有办法可以cast Bar_Natural是Ada.Containers.Count_Type

回答

6

对不起,我太愚蠢,不能真正阅读我的错误说的所有。我试图转换自然使用:

Ada.Containers.Vectors.Count_Type(Bar_Natural) 

这使零感! 读取错误,看到在包Ada.Containers中定义Count_Type是微不足道的。

正确的转换将因此会:

Ada.Containers.Count_Type(Bar_Natural); 

给予

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

你能接受你自己的答案 – darkestkhan

+0

感谢。忘了这么做,因为你只能在一天左右之后。 –