One key feature of C++11 is move semantics with rvalue references. However, combined with other features and guarantees of the standard library the consequences of introducing move semantics turn out to be remarkable. In fact, late in the standardization process this features caused the new concept for exception handling using the new keyword noexcept. The reason was to remain backward compatibility of push_back() for vectors. This talk will jump into the whole mess of this topic of move semantics and exception handling. It give a rough understanding of what move semantics means for class designers and why and how good class design even more becomes an issue with C++11. |