generic type Encapsulated is abstract new Reference_Counted with private; package Smart_Pointers is
type Encapsulated is abstract new Reference_Counted with private;
type A_Encapsulated is access all Encapsulated'Class;
function Get
( | this | : Ref ) return A_Encapsulated; |
function Get_Refcount
( | this | : Ref ) return Natural; |
procedure Set
( | this | : in out Ref; |
target | : Encapsulated'Class ); |
procedure Set
( | this | : in out Ref; |
target | : access Encapsulated'Class ); |
function "="
( | l, r | : Ref ) return Boolean; |