2016-11-26 5 views
1

制約のない可変型要素の配列を作成しようとしています。しかし、要素に制約がないので、私はこのエラーがあります: "配列宣言の制約のない要素の型"。ここでAdaの制約のない可変型の配列

は私の角型の宣言です:

type C_square(size : bRange) is tagged record 

private 

type C_square(size : bRange) is tagged record 
    bConstaint : uint8 := size; 
    coord : T_coord;    
    color : e_color := unknown; 
end record; 

そして、ここではエラーが来る:

type C_board(size : bRange) is tagged limited private; 

type square_matrix is array (uint8 range <>, uint8 range <>) of C_square; -- here is the problem C_square is uncontrained 

private 
type C_board(size : bRange := MIN_SIZE) is tagged limited record 
    bSize : uint8 := size; 
    square_m : square_matrix(1..size, 1..size); 
end record; 

は私が制約されていない可変要素の配列を持つことができるように任意の解決策はありますか?

+2

[_indefinite container_](http://www.adaic.org/resources/add_content/standards/05rat/html/Rat-8-5.html)を探している可能性があります。 – trashgod

+0

おそらくサイズのデフォルトを与えることで違いが生まれますか? – Alex

答えて

3

配列の制約のない要素は使用できません。

いくつかの選択肢:

  • 不定ベクトルを使用してください。 (良い!)
  • 不定型へのアクセスの配列を作成します。 (Bad!)