:
package Record_Subtypes is
type Int_Data is array (Integer range <>) of Integer;
type ABC (X_Min, X_Max, Y_Min, Y_Max : Integer) is record
A : Int_Data (X_Min .. X_Max);
B : Int_Data (Y_Min .. Y_Max);
end record;
subtype ABC_4_4 is ABC(X_Min => 1, X_Max => 4,
Y_Min => 1, Y_Max => 4);
subtype ABC_1_7_3_12 is ABC (X_Min => 1, X_Max => 7,
Y_Min => 3, Y_Max => 12);
end Record_Subtypes;
AレコードフィールドとBレコードフィールドは、レコード判別式のインデックスサブタイプを使用します。
これは私が時々使用したすてきなトリックです。読み込むバイト数が固定サイズのヘッダーで提供されるインターフェイス(ソケットなど)から可変長文字列を読み込むときに便利です。または列挙型判別式を持つバリアントレコードの場合は、そのレコードを特定のバリアントにサブタイプすることができます。
あなたはいません。サブタイプは列挙型、浮動小数点型、整数型などに適用されますが、レコードは適用されません。あなたの問題に関する詳細情報を提供すれば、より多くのことを助けることができるかもしれません。 – NWS
'サブタイプXYZはABCです;'は合法ですが、OPが求めているものではありません。 –