Re: Interfaces and private types
- From: Georg Bauhaus <rm.tsoh+bauhaus@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 29 Jan 2008 13:48:13 +0100
Philippe Tarroux schrieb:
Randy Brukardt wrote:Specifically, it violates 7.3(7.3/2): "the partial view shall be aAs it is written the compiler i use doesn't mention any error and i interpreted this construct as legal because :
descendant of an interface type (see 3.9.4) if and only if the full type is
a descendant of the interface type."
As written, this is illegal because type T does not have the interface Int.
1/ the interface is synchronized thus allowing to derive concurrent or non concurrent types
2/ The partial view is a descendant of the interface type
3/ The full view precises that the partial view correspond to a concurrent type but hides this detail to the user
I'd rather think that the compiler should diagnose conflicting
declaration of T in the private part as the private T does not
declare a relation with the public T.
If you do not want to derive T publicly, why not
package Test_Interfaces is
type Int is synchronized interface;
procedure Init (I : in out Int) is abstract;
type T is limited private;
private
task type T is new Int with
overriding entry Init;
end T;
end Test_Interfaces;
.
- Follow-Ups:
- Re: Interfaces and private types
- From: Philippe Tarroux
- Re: Interfaces and private types
- References:
- Interfaces and private types
- From: Philippe Tarroux
- Re: Interfaces and private types
- From: Randy Brukardt
- Re: Interfaces and private types
- From: Philippe Tarroux
- Interfaces and private types
- Prev by Date: Re: Allocators and memory reclamation
- Next by Date: Re: Allocators and memory reclamation
- Previous by thread: Re: Interfaces and private types
- Next by thread: Re: Interfaces and private types
- Index(es):
Relevant Pages
|