Это пока невозможно, но это будет в Аде 202x [ AI12-0020-1 ].До этого вам нужно будет определить подпрограмму (например, Image
) и вызвать ее явно.См. Также этот связанный вопрос на SO.
Пример использования GNAT.Formatted_String
:
main.adb
with Ada.Text_IO;
with GNAT.Formatted_String;
procedure Main is
subtype Counter_Type is Integer range 0 .. 15;
type Array_Counter_Type is
record
Counter_01 : Counter_Type;
Counter_02 : Counter_Type;
Counter_03 : Counter_Type;
Counter_04 : Counter_Type;
end record;
-----------
-- Image --
-----------
function Image (Array_Counter : Array_Counter_Type) return String is
use GNAT.Formatted_String;
Format : constant Formatted_String := +"%02d-%02d-%02d-%02d";
begin
return
-(Format
& Array_Counter.Counter_01
& Array_Counter.Counter_02
& Array_Counter.Counter_03
& Array_Counter.Counter_04);
end Image;
AC : Array_Counter_Type := (0, 5, 10, 15);
begin
Ada.Text_IO.Put_Line (Image (AC));
end Main;
Но вы также можете использовать Ada.Integer_Text_IO
, Counter_Type'Image
и т. Д., Если GNAT.Formatted_String
недоступен.