Defaulted and deleted functions
In C++, classes have special members (constructors, destructors, and operators) that may be either implemented by default by the compiler or supplied by the developer. However, the rules for what can be default implemented are a bit complicated and can lead to problems. On the other hand, developers sometimes want to prevent objects from being copied, moved, or constructed in a particular way. That is possible by implementing different tricks using these special members. The C++11 standard has simplified many of these by allowing functions to be deleted or defaulted in the manner we will see in the next section.
Getting started
For this recipe, you need to know what special member functions are and what copyable and moveable means.
How to do it...
Use the following syntax to specify how functions should be handled:
- To default a function, use
=default
instead of the function body. Only special class member functions that have defaults can be defaulted:
struct...