comp.lang.ada
 help / color / mirror / Atom feed
From: tmoran@acm.org
Subject: Re: Problem trying to implement generics.
Date: Thu, 12 Apr 2001 01:41:51 GMT
Date: 2001-04-12T01:41:51+00:00	[thread overview]
Message-ID: <zJ7B6.11026$ix4.8084250@news1.rdc1.sfba.home.com> (raw)
In-Reply-To: 9b1oe1$i4m$1@taliesin.netcom.net.uk

>I've just started to learn Ada, and I've some problem solving some problems.
  If you are learning in a course, asking the instructor will be much
faster than asking here.  Assuming you are trying to learn just from
a book:
>I trying to put the defination of Node in the body, but it results in
>compilation error, is there some way to put the defination in the body? Or
>does it matter naught, because it's on the private part of the package?
  If Node is defined in the spec, the compiler needs to know things like
how big it is to generate assignments, etc.  Since the compiler cannot
look at the body (which may not even be written yet), the full definition
must be in the spec.  It's OK in the private part, as you have it now.

>Here is the error:
>bintree.adb: Error: line 43 col 25 LRM:8.4(1), Binary operator ">" between
  Without seeing line 43 (or any lines) of bintree.adb it's a little
hard to see what's going on, but, as the compiler suggests, a "use"
or "use type" might be what you need.

>procedure insert(insert_this : in data_type; Sort : in sort_by) is
>Here is the error this line produce:
>bintree.adb: Error: line 107 col 12 LRM:3.11.1(7), subprogram body is a
>homograph of another subprogram which does not require a completion,
  That sounds like you have two different "insert" subroutines which
look the same in calling parameters so if the compiler saw
 insert(a,b);
it wouldn't know which one to call.

>bintree.adb: Error: line 150 col 18 LRM:3.10.2(23&31), The prefix to 'ACCESS
>must be either an aliased view of an object or denote a subprogram with a
  Like the message says, the thing before 'access must be aliased.  Given
  type node is record
    Data : Data_type;
    ...
  type node_access is access all Node;
    ...
  result : node_access ...
  ...  result.data'access;
you see that "result.data" is defined as not aliased.  Try
    Data : aliased Data_type;

>Also I've a trouble using Root variable in a function that is undefied in
  Is the Root variable defined before the function that uses it?

When the compiler gives you an error message, it means it is doesn't
know what you want.  Occasionally, that's because the compiler is
stupid, but often, and in several of the cases above, there is no
way even the most clever compiler could know what you want.  So you
need to let the compiler know things like "actually, there's only
one 'procedure insert', Root is a variable I haven't told you about
yet, I did mean for Data to be aliased, though I didn't say it,
here's what Node looks like, so you can generate copying or
comparing code."



  reply	other threads:[~2001-04-12  1:41 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-11 15:04 Problem trying to implement generics Ayende Rahien
2001-04-12  1:41 ` tmoran [this message]
2001-04-12 13:15   ` Ayende Rahien
2001-04-12 18:15     ` tmoran
2001-04-13 11:18       ` Ayende Rahien
2001-04-13 10:35         ` chris.danx
2001-04-13 11:54           ` Ayende Rahien
2001-04-13 11:49             ` chris.danx
2001-04-13 23:03               ` Ayende Rahien
2001-04-13 23:01                 ` Robert A Duff
2001-04-14  0:05                   ` Brian Rogoff
2001-04-14  1:12                     ` Ayende Rahien
2001-04-14  1:44                       ` Brian Rogoff
2001-04-14 14:03                         ` Dmitry A. Kazakov
2001-04-14 16:30                           ` Ayende Rahien
2001-04-14 16:28                             ` Michael Erdmann
2001-04-15  3:27                             ` James Rogers
2001-04-15 12:20                               ` Ayende Rahien
2001-04-15 14:09                               ` Dmitry A. Kazakov
2001-04-15 18:22                                 ` tmoran
2001-04-15 13:48                             ` Dmitry A. Kazakov
2001-04-15 20:44                               ` Ayende Rahien
2001-04-16 14:34                                 ` Dmitry A. Kazakov
2001-04-14  1:33                     ` Robert A Duff
2001-04-17  8:50                     ` Jean-Pierre Rosen
2001-04-17 13:20                   ` Tucker Taft
2001-04-17 16:51                     ` Ayende Rahien
2001-04-17 17:16                       ` Larry Hazel
2001-04-17 18:11                         ` Brian Rogoff
2001-04-17 19:10                           ` Marin David Condic
2001-04-17 21:08                             ` Brian Rogoff
2001-04-18 15:16                               ` Chad R. Meiners
2001-04-18 16:33                                 ` Marin David Condic
2001-04-17 21:09                             ` chris.danx
2001-04-17 21:11                             ` chris.danx
2001-04-17 21:17                             ` chris.danx
2001-05-08  5:40                             ` Lao Xiao Hai
2001-05-11  9:43                               ` John English
2001-05-12 19:16                                 ` Lao Xiao Hai
2001-04-17 19:32                           ` Larry Hazel
2001-04-17 21:03                           ` Ayende Rahien
2001-04-18 15:48                             ` Brian Rogoff
2001-04-20 12:34                               ` Georg Bauhaus
2001-04-20 12:42                                 ` Lutz Donnerhacke
2001-04-20 12:45                                 ` Lutz Donnerhacke
2001-04-20 19:48                                 ` Brian Rogoff
2001-04-20 20:36                                   ` David Starner
2001-04-20 23:02                                   ` Robert A Duff
2001-04-23  2:45                                     ` Brian Rogoff
2001-04-24  1:15                                       ` Robert A Duff
2001-04-24  2:00                                         ` Brian Rogoff
2001-04-24 15:12                                           ` Georg Bauhaus
2001-04-24 15:09                                         ` Georg Bauhaus
2001-04-24 18:36                                           ` Marius Amado Alves
2001-04-19 13:08                           ` Larry Kilgallen
     [not found]                           ` <9bi4g4$97m$1@nh.pace.Organization: LJK Software <YlSyXUaQmD+$@eisner.encompasserve.org>
2001-04-19 14:20                             ` Marin David Condic
2001-04-18  5:34                       ` Mike Silva
2001-04-18 16:55                       ` Ray Blaak
2001-04-24 16:00                       ` Tucker Taft
2001-04-12 13:57 ` Andy
2001-04-13  6:34   ` Simon Wright
2001-04-13 11:11   ` Ayende Rahien
2001-04-12 18:06 ` Stephen Leake
replies disabled

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