Objects in C++

Since Storm uses a garbage collector to manage memory, some care needs to be taken when working with objects in C++. Furthermore, Storm is designed to be useable as an embedded language. Because of this, the entire Storm system is represented as an instance of the storm::Engine class. Different engines are designed to be able to operate separately. Therefore, all heap-allocated objects are associated with an Engine instance, since they are allocated on a heap associated with a particular Engine.

Both of these things makes object allocation and management needs some additional care: