Я бы хотел сделать так:
try
{
  // ...
}
catch(const std::exception& ex)
{
  // should preserve ex' runtime type
  throw type_in_question(std::string("Custom message:") + ex.what());
}
Возможно ли это, без необходимости писать отдельный обработчик для каждого подтипа?