title: Is the destructor called when a delegating constructor throws?
body: <p>It is well known that if a constructor throws, then all fully constructed sub-objects will be destroyed in reverse order including member data and all kinds of base classes. The destructor does not get called for non-delegating constructors though. For a delegating constructor the object has been constructed when the constructor body is entered, but construction continues somewhat. Therefore the question arises whether the destructor of the class is called, if the delegating constructor throws an exception from within its body? </p>
  
  <pre><code>class X
  {
  public:
      X();
      X(int) : X() { throw std::exception(); } // is ~X() implicitely called?
      ~X();
  };
  </code></pre>