A Comprehensive Look at RAII
Resource management is probably the second most frequent thing a program does, after computing. But just because it’s frequently done does not mean it’s visible—some languages hide most, or all, resource management from the user. And just because it is hidden, does not mean it’s not there.
Every program needs to use some memory, and memory is a resource. A program would be of no use if it never interacted with the outside world in some way, at least to print the result, and input and output channels (files, sockets, and so on) are resources.
In this chapter, we will start by answering the following questions:
- What is considered a resource in a C++ program?
- What are the key concerns for managing resources in C++?
Then, we will introduce Resource Acquisition is Initialization (RAII) and explain how it helps in efficient resource management in C++ by answering these questions:
- What is the standard...