Skip to Content
Advanced C++ Programming Cookbook
book

Advanced C++ Programming Cookbook

by Dr. Rian Quinn
January 2020
Intermediate to advanced
454 pages
11h 25m
English
Packt Publishing
Content preview from Advanced C++ Programming Cookbook

How it works...

As stated before, a move should not throw an exception to ensure strong exception guarantees (that is, the act of moving an object doesn't possibly corrupt the object), and in most cases, this is possible because a move (unlike a copy) doesn't create resources, it transfers them. The best way to ensure that your move constructors and move assignment operators do not throw is to only transfer member variables using std::move(), as in the following example:

m_answer = std::move(other.m_answer);

Assuming that the member variable you are moving doesn't throw, your class will not either. Using this simple technique will ensure that your move constructors and operators never throw. But what if this operation cannot be used? Let's ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Modern C++ Programming Cookbook

Modern C++ Programming Cookbook

Marius Bancila

Publisher Resources

ISBN: 9781838559915Supplemental Content