Except where explicitly specified otherwise,
each standard library class 
T that derives from class 
exception
has the following publicly accessible member functions, each of them having
a non-throwing exception specification (
[except.spec]):
- default constructor (unless the class synopsis shows other constructors)
- copy constructor
- copy assignment operator
The copy constructor and the copy assignment operator meet
the following postcondition: If two objects 
lhs and 
rhs both have
dynamic type 
T and 
lhs is a copy of 
rhs, then
strcmp(lhs.what(), rhs.what()) is equal to 
0.