In Larch/C++, the traits for objects, and the built-in C++ types
have trait functions that allow you to specify whether
an object is allocated or not.
The trait function for this purpose is named allocated,
and it has many overloading for different sorts.
Generally, it takes an object and a state (such as pre or post)
as an argument.
See section 6.2.2 Allocated and Assigned for the trait functions
that are part of the built-in types.
In addition, Larch/C++ provides syntactic support for asserting
that an object is newly allocated (fresh),
and for specifying what objects are considered "trashed" or
potentially deallocated by a function (the trashes-clause
and trashed).
Unless the trashes-clause is used, a function is not allowed
to deallocate objects.
These ideas are discussed in the subsections that follow.
Go to the first, previous, next, last section, table of contents.