[<< wikibooks] Ada Programming/Libraries/Ada.Finalization
This language feature is available from Ada 95 on.

Ada.Finalization is a unit of the Predefined Language Environment since Ada 95.


== Specification ==
--                     Standard Ada library specification
--   Copyright (c) 2003-2018 Maxim Reznik 
--   Copyright (c) 2004-2016 AXE Consultants
--   Copyright (c) 2004, 2005, 2006 Ada-Europe
--   Copyright (c) 2000 The MITRE Corporation, Inc.
--   Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc.
--   SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual
-- -------------------------------------------------------------------------

package Ada.Finalization is
   pragma Preelaborate (Finalization);
   pragma Remote_Types (Finalization);

   type Controlled is abstract tagged private;
   pragma Preelaborable_Initialization (Controlled);

   procedure Initialize  (Object : in out Controlled) is null;
   procedure Adjust      (Object : in out Controlled) is null;
   procedure Finalize    (Object : in out Controlled) is null;

   type Limited_Controlled is abstract tagged limited private;
   pragma Preelaborable_Initialization (Limited_Controlled);

   procedure Initialize  (Object : in out Limited_Controlled) is null;
   procedure Finalize    (Object : in out Limited_Controlled) is null;

private

   pragma Import (Ada, Controlled);
   pragma Import (Ada, Limited_Controlled);

end Ada.Finalization;


== See also ==


=== Wikibook ===
Ada Programming/Libraries/Ada
Ada Programming/Object Orientation


=== External examples ===
Search for examples of Ada.Finalization in: Rosetta Code, GitHub or this Wikibook.
Search for any post related to Ada.Finalization in: Stack Overflow, comp.lang.ada or any Ada related page.


=== Ada Reference Manual ===


==== Ada 95 ====
7.6: User-Defined Assignment and Finalization (Annotated)


==== Ada 2005 ====
7.6: User-Defined Assignment and Finalization (Annotated)


==== Ada 2012 ====
7.6: Assignment and Finalization (Annotated)


=== Open-Source Implementations ===
FSF GNAT 

Specification: a-finali.adsdrake 

Specification: a-finali.ads