Why does default exception use const char* instead of std::string
when defining the what() member function?
const char* const what() const;
I think the reason is to avoid dynamic memory allocation so no
additional exceptions are thrown, which might be caused by
the std::string class.