Move semantics, introduced with C++11, has become a hallmark of modern C++ programming. However, it also complicates the language in many ways. After several years of support of move semantics experienced programmers struggle with all the details of move semantics. Even for trivial classes, style guides give conflicting or inappropriate advice on how to benefit from move semantics. Time to explain all aspects of C++ move semantics in detail.
This book teaches C++ move semantics. Starting from the basic principles, it motivates and explains all the corner cases of move semantics so that as a programmer, you can use move semantics correctly. The book is valuable for those who are just starting to learn about move semantics and is essential for those who are using it already.
You will learn:
- The motivation for and terminology of move semantics
- How and why you benefit implicitly from move semantics
- How to benefit explicitly from move semantics
- All the traps involved in move semantics and how to deal with them
- All the consequences of move semantics for your programming style
As usual for books by Nicolai Josuttis, the focus lies on the application of the described features in practice. Compelling examples and useful background information help to understand and improve code, from trivial classes up to generic foundation libraries and frameworks.