Now that GNAT GPL 2012 implementing full Ada 2012 is out, reference counted access types use the new aspect Implicit_Dereference, which greatly simplifies the syntax. (The previous Ada 2005 implementation is also availible.)
This package provides a completely safe implementation in that it prevents deallocation by the user; deallocation is under sole control of the implementation. (It’s however not task-safe.)
Full documentation and test programs show how to use the package.
http://www.christ-usch-grein.homepage.t-online.de/Ada/Smart_Pointers.html
Pingback: AdaMagica: Smart_Pointers with Ada 2012 functionality | Ada Rocks