title: Catch and modify std::exception and subclasses, rethrow same type
body: <p>I'd like to do sth like this:</p>
  
  <pre><code>try
  {
    // ...
  }
  catch(const std::exception&amp; ex)
  {
    // should preserve ex' runtime type
    throw type_in_question(std::string("Custom message:") + ex.what());
  }
  </code></pre>
  
  <p>Is that somehow possible without having to write a separate handler for each subtype?</p>