comp.lang.ada
 help / color / mirror / Atom feed
From: Tomek Wa kuski <tomek.walkuski@gmail.com>
Subject: Re: "Ada Gems": Constructor functions
Date: Thu, 06 Sep 2007 07:54:02 -0000
Date: 2007-09-06T07:54:02+00:00	[thread overview]
Message-ID: <1189065242.201148.254440@50g2000hsm.googlegroups.com> (raw)
In-Reply-To: <1189064716.528979.201170@19g2000hsx.googlegroups.com>

The "working" code is:

t.ads:
with Ada.Strings.Unbounded;
use Ada.Strings.Unbounded;

package T is
   type Object (<>) is tagged limited private;

   function Create_Object (Name : in String) return Object;
   function Construct return Object;
   function Name (This : in Object) return String;

   private
   type Object is tagged limited
      record
         Name : Unbounded_String;
      end record;
end T;


t.adb:
package body T is
   function Create_Object (Name : in String) return Object is
   begin
      return (Name => To_Unbounded_String (Name));
   end Create_Object;

   function Construct return Object is
   begin
      return Create_Object (Name => "Object without a name!");
   end Construct;

   function Name (This : in Object) return String is
   begin
      return To_String (This.Name);
   end Name;
end T;


test_t.adb:
with T;

procedure Test_T is
   Some_Object : constant T.Object := Construct;
begin
   null;
end Test_T;



------
tomek@genbox [~/Desktop/test_t] $ gnatmake test_t.adb
gnatgcc -c test_t.adb
test_t.adb:4:39: "Construct" is not visible
test_t.adb:4:39: non-visible declaration at t.ads:8
gnatmake: "test_t.adb" compilation error

(and no bug report)

Why "Construct" is not visible?




  parent reply	other threads:[~2007-09-06  7:54 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-05 18:10 "Ada Gems": Constructor functions Tomek Wałkuski
2007-09-05 22:47 ` Jeffrey R. Carter
     [not found]   ` <1189064716.528979.201170@19g2000hsx.googlegroups.com>
2007-09-06  7:54     ` Tomek Wa kuski [this message]
2007-09-06 13:55       ` Robert A Duff
2007-09-06 14:12         ` Tomek Wa kuski
2007-09-06  0:04 ` Robert A Duff
2007-09-06 16:16 ` anon
2007-09-07 10:38   ` Tomek Wa kuski
2007-09-07 15:17     ` Robert A Duff
2007-09-08 18:20       ` Tomek Wa kuski
2007-09-10 13:46         ` Tomek Wa kuski
2007-09-11  7:51           ` Georg Bauhaus
2007-09-11 10:26             ` Tomek Wa kuski
2007-09-11 21:33             ` Anh Vo
2007-09-12  7:39               ` Tomek Wa kuski
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox