C++98 had the Rule of Three (or was it Four?). C++11 has the Rule of Five — or Six, if you count the default constructor — or Seven, if you count swap(). Should swap() be a member function? When is a default constructor absolutely mandatory? When is noexcept required for good performance? Should our classes support self-assignment and self-move? When is =default different from empty braces? We'll present reasonable answers to these questions and more.
Arthur O'Dwyer worked for many years at Green Hills Software, making the world's most optimizing C and C++ compilers. Now he works at Mixpanel in San Francisco, where he organizes a monthly C++ meetup.