使用所有默认值初始化记录类型的常量变量

Tyg*_*g13 1 ada

说我有一个类型

type Record_T is
   record
      VAR1 : integer := 1;
      VAR2 : string  := "";
   end record;
Run Code Online (Sandbox Code Playgroud)

如果要初始化此类型的常量变量,可以通过以下几种方法来实现:

Null_Record : constant Record_T := (1, "");
Null_Record : constant Record_T := Record_T'(1, "");
Run Code Online (Sandbox Code Playgroud)

但这迫使我先指定默认值,然后再进行指定。

我尝试了以下所有方法,但均无济于事

Null_Record : constant Record_T := ();
Null_Record : constant Record_T := Record_T'();
Null_Record : constant Record_T;
Run Code Online (Sandbox Code Playgroud)

但是必须有某种方法可以做到吗?至少,如果艾达缺乏这种能力,我会感到非常惊讶。

Tyg*_*g13 5

看起来在Ada 2005中应该可以实现这一点,对<>运算符使用新的“默认值初始化”进行聚合。

这看起来像

Null_Record : constant Record_T := (others => <>);
Run Code Online (Sandbox Code Playgroud)

我看不到有任何办法可以在2005年Ada之前做到这一点。不幸的是,对于Ada 95来说,这对我来说不是解决方案。