我最近发现了类似于这样的代码,在Ada 95模式下编译,但在Ada 2005模式下无法编译:
with Ada.Text_IO;
procedure Test is
Printable_Char : constant Character := '["20"]';
Non_printable_Char : constant Character := '["00"]';
begin
Ada.Text_IO.Put_Line (Printable_Char & Non_printable_Char);
end Test;
使用 FSG GNAT 9.3.0:
test.adb:6:48: (Ada 2005) non-graphic character not permitted in character literal
但是在使用-gnat95
标志(Ada 95模式)编译时可以正常编译。
我在GNAT RM的第11.6章“Wide Text IO”中找到了一些关于这种格式的参考。这种格式是GNAT特有的吗?
关于语言版本模式的差异,我在Ada 2005 Rationale中没有找到任何提及。那么,在Ada 2005模式下编译时为什么会出现这种差异呢?
(Ada 2005)
的AI。 - Simon Wright