From: Javi <fjvera@gmail.com>
Subject: Re: declaration of an incomplete private type before the private part
Date: Fri, 1 Feb 2008 01:53:56 -0800 (PST)
Date: 2008-02-01T01:53:56-08:00 [thread overview]
Message-ID: <de74e5ef-f7f0-4f1a-872b-f3eb1a702f3f@q21g2000hsa.googlegroups.com> (raw)
In-Reply-To: 47a2d8fd$0$23828$4f793bc4@news.tdc.fi
On 1 feb, 09:49, Niklas Holsti <niklas.hol...@tidorum.invalid> wrote:
> Javi wrote:
> > My problem: I need to do a declaration such as:
>
> > -----------------------------------------
> > ...
> > type ListNode is private;
> > type List is private;
>
> > package IterList is new Iterators (Creator => List,
> > Item => ListNode,
> > getFirst => Lists.getFirst,
> > getNext => Lists.getNext,
> > isLast => Lists.isLast);
>
> > function makeIter (L : List) return IterList.Iterator;
> > ...
> > private:
> > (complete declaration of ListNode and List)
> > -----------------------------------------
>
> > The problem is that I need to complete the type (ListNode and List)
> > before instancing the new package. But I do not know how to do that!
> > The only solution I have found is to declare the types non-private and
> > then give them the complete declaration. Obviously, this solution does
> > not satisfy me since I want to make the types private.
>
> As I understand it, you want to instantiate the Iterators package
> before the "private" part, because you want to use the type
> Iterator, defined in the instance, in the declaration of public
> oeprations (makeIter). One way to work around this problem is to
> define a new type for that purpose:
>
> type ListNode is private;
> type List is private;
> type ListIterator is private; -- Added.
>
> function makeIter (L : List) return ListIterator;
>
> private
>
> type ListNode is ... -- Complete declaration.
> type List is ... -- Complete declaration.
>
> packate IterList is new Iterators (....); -- As above.
>
> type ListIterator is new IterList.Iterator;
>
> HTH,
>
> --
> Niklas Holsti
> Tidorum Ltd
> niklas holsti tidorum fi
> . @ .
many thanks :-)
next prev parent reply other threads:[~2008-02-01 9:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-01 8:28 declaration of an incomplete private type before the private part Javi
2008-02-01 8:49 ` Niklas Holsti
2008-02-01 9:53 ` Javi [this message]
2008-02-01 14:00 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox