Add operator=() to DerivedEx. Make sure virtual what() extends down to std::exception and that the virtual exceptioName() method picks up the right exception name when called as a std::exception.