From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,XPRIO autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9def90e15d8accc,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-12-08 12:37:05 PST From: "Ratson Janiv" Newsgroups: comp.lang.ada Subject: coding problems, please help. Date: Mon, 8 Dec 2003 22:34:38 +0200 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 NNTP-Posting-Host: 82-166-176-43.barak.net.il X-Original-NNTP-Posting-Host: 82-166-176-43.barak.net.il Message-ID: <3fd4e0e2$1@news.barak.net.il> X-Trace: news.barak.net.il 1070915810 82-166-176-43.barak.net.il (8 Dec 2003 22:36:50 +0300) X-Original-Trace: 8 Dec 2003 22:36:50 +0300, 82-166-176-43.barak.net.il Path: archiver1.google.com!news2.google.com!newsfeed2.dallas1.level3.net!news.level3.com!zeus.visi.com!priapus.visi.com!orange.octanews.net!news.octanews.net!news-out.visi.com!petbe.visi.com!ash.uu.net!news.splitrock.net!nntp02.mcleodusa.net!dimaggio.newszilla.com!sinatra.newszilla.com!news.barak.net.il!not-for-mail Xref: archiver1.google.com comp.lang.ada:3244 Date: 2003-12-08T22:34:38+02:00 List-Id: with Jr.Queue; with Jr.Queue.Max_Bounded_Queue; use Jr.Queue.Max_Bounded_Queue; procedure Q2 is package My_Queue is new Max_Bounded_Queue(T=>Integer,">"=>">"); begin null; end Q2; compile error : q2.adb:5:07: invalid prefix in selected component "Queue" q2.adb:9:28: "Max_Bounded_Queue" is not visible q2.adb:9:28: non-visible declaration at jr-queue-max_bounded_queue.ads:7 q2.adb:9:28: non-visible declaration at jr-queue-max_bounded_queue.ads:5 why ? generic type T is private; package Jr.Queue is type Queue is abstract tagged private; procedure Push(Q: in out Queue'class;Item:T) is abstract; procedure Pop(Q: in out Queue'class;Item:in out T) is abstract; function Empty(Q: Queue'class) return Boolean is abstract; private type Queue is tagged null record; end Jr.Queue; ------------------------- with Jr.Queue; generic package Jr.Queue.Max_Queue is type Max_Queue is abstract new Queue with null record; function Max(Q:Max_Queue) return T is abstract; end Jr.queue.Max_Queue; ----------------------- generic with function ">"(Item1,Item2:T) return Boolean; package Jr.Queue.Max_Bounded_Queue is type Max_Bounded_Queue is new Queue with private; procedure Push(Q: in out Max_Bounded_Queue;Item:T); procedure Pop(Q: in out Max_Bounded_Queue;Item:in out T); function Empty(Q: Max_Bounded_Queue) return Boolean; function Max(Q:Max_Bounded_Queue) return T; Queue_Full, Queue_Empty :exception; private Num_Items : constant := 100; type Queue_Arr is array (1..Num_Items) of T; type Max_Bounded_Queue is new Queue with record Arr : Queue_Arr; I : Integer := 1; Max_Item : T; end record; procedure Find_Max(Q: in out Max_Bounded_Queue); end Jr.Queue.Max_Bounded_Queue; 10x.