Covers the design of a global memory manager that is as fast and space-efficient as per-class allocators.
Delves deeper into the question of what operator new() failures mean, and how best to detect and handle them.
Explains why a class that provides its own class-specific operator new(), or operator new[](), should also provide corresponding class-specific versions of plain new, in-place new, and nothrow new.
Answers the question of how much memory the various standard containers use to store the same number of objects of the same type T.
Introduces two key concepts: the use of a generic requirements based approach to simplify and adapt the use of the counted body pattern and the ability to dynamically and non-intrusively add capabilities to fixed types using the runtime mixin pattern.
Explains why auto_ptr neatly solves common C++ design and coding problems, and why using it can lead to more robust code.
Explains what smart pointers are, why they should be used, and which one should be used.
Using several features of the language, this article presents a framework for resource allocation which is temporally deterministic, provides for callback, provides memory pools, and can provide for deadlock prevention.
An article on using garbage collection through the use of smart pointers.
This article deals with refactoring the code originally presented in part 1 in order to allow polymorphic types to be used.
Computers /
Programming /
Memory_Management
|