0
Ada 2012爲類型提供了Default_Value
方面。有什麼辦法來限制通用類型參數,要求他們有一個默認值(或者有甚至一般方法來檢查任何方面?)我可以限制泛型類型參數以要求Default_Value方面嗎?
基本上我的問題是,如果下面的例子可以變得安全。目前蚊蚋拋出一個警告
main.adb:6:03:警告:變量 「VAR」 被讀取,但從來沒有分配[-gnatwv
當我不with Default_Value => 10.0
定義MyFloat。
-- main.adb
with MyProc;
procedure test is
type MyFloat is new Float with Default_Value => 10.0;
package P is new MyProc (MyFloat);
Var : P.Bla;
Var2 : MyFloat := P.Stuff (Var);
begin
null;
end test;
-- MyProc.ads
generic
type MyTypeWithDefault is private;
package MyProc is
type Bla is tagged private;
function Stuff (Self : Bla) return MyTypeWithDefault;
private
type Bla is tagged record
Data : MyTypeWithDefault;
end record;
end MyProc;
-- MyProc.adb
package body MyProc is
function Stuff (Self : Bla) return MyTypeWithDefault is
begin
return Self.Data;
end Stuff;
end MyProc;