我正在尝试编写以下程序:
with Ada.Text_IO;
procedure Main is
type T is range 0 .. 18;
package IO is new Ada.Text_IO.Integer_IO (T);
begin
IO.Put (1);
end Main;
但是当我尝试编译时,出现以下错误消息:
main.adb:6:04: info: in instantiation at a-tiinio.ads:51 main.adb:6:04: info: "IO" requires body ("Get" requires completion) main.adb:6:04: info: in instantiation at a-tiinio.ads:56 main.adb:6:04: info: "IO" requires body ("Get" requires completion) main.adb:6:04: info: in instantiation at a-tiinio.ads:60 main.adb:6:04: info: "IO" requires body ("Put" requires completion) main.adb:6:04: info: in instantiation at a-tiinio.ads:66 main.adb:6:04: info: "IO" requires body ("Put" requires completion) main.adb:6:04: info: in instantiation at a-tiinio.ads:71 main.adb:6:04: info: "IO" requires body ("Get" requires completion) main.adb:6:04: info: in instantiation at a-tiinio.ads:76 main.adb:6:04: info: "IO" requires body ("Put" requires completion) a-tiinio.adb:59:07: (style) maximum nesting level exceeded a-tiinio.adb:79:07: (style) maximum nesting level exceeded a-tiinio.adb:100:07: (style) maximum nesting level exceeded a-tiinio.adb:121:07: (style) maximum nesting level exceeded a-tiinio.adb:134:07: (style) maximum nesting level exceeded a-tiinio.adb:147:07: (style) maximum nesting level exceeded
据本手册A.10.8节了解,这Integer_IO
是一个通用程序包,需要使用带符号的整数实例化。我也尝试使用subtype T is Integer
或Positive
,但是得到了相同的错误。
我究竟做错了什么?
似乎您在样式检查中设置了不合适的最大嵌套级别,该级别由编译器开关“ -gnatyL”提供,然后通过“ -gnatwe”开关将编译器设置为将所有警告和样式检查视为错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句