Implementing the rule of three

Prior to C++11, automatic resource acquisition in C++ was implemented using a guideline called the rule of three, where the three refers to the special member functions: copy-constructor, copy-assignment and destructor. The rule says that if you are handling resources in any of these three functions, you most likely need to do it in all three of them.

Let's have a look at how the rule of three can be implemented in a class handling an allocated resource. In the Buffer class defined in the following code snippet, the allocated resource is an array of floats pointed at by the raw pointer ptr_ . Note how the rule of three handles the resource by allocating and deallocating the float array:

class Buffer { public: ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.