title: Why doesn't C++ use std::nested_exception to allow throwing from destructor?
body: <p>The main problem with throwing exceptions from destructor is that in the moment when destructor is called another exception may be "in flight" (<code>std::uncaught_exception() == true</code>) and so it is not obvious what to do in that case. "Overwriting" the old exception with the new one would be the one of the possible ways to handle this situation. But it was decided that <code>std::terminate</code> (or another <code>std::terminate_handler</code>) must be called in such cases.</p>
  
  <p>C++11 introduced nested exceptions feature via <code>std::nested_exception</code> class. This feature could be used to solve the problem described above. The old (uncaught) exception could be just nested into the new exception (or vice versa?) and then that nested exception could be thrown. But this idea was not used. <code>std::terminate</code> is still called in such situation in C++11 and C++14.</p>
  
  <p>So the questions. Was the idea with nested exceptions considered? Are there any problems with it? Isn't the situation going to be changed in the C++17?</p>