title: Default destructor nothrow
body: <p>The following code doesn't compile under gcc-4.7.1 but compile under clang-3.2.  Which one follows the C++11 standard?</p>
  
  <pre><code>struct X {
    virtual ~X() = default;
  };
  
  struct Y : X {
    virtual ~Y() = default;
  };
  </code></pre>
  
  <p>gcc-4.7.1 complains that:</p>
  
  <pre><code>looser throw specifier for 'virtual Y::~Y()'
  error: overriding 'virtual X::~X() noexcept(true)'
  </code></pre>
  
  <p>Obviously, gcc-4.7.1 thinks X's default destructor nothrow, but Y's default destructor is not nothrow.  Why is this?  Can anyone refer to the correct place in standard?  Thanks.</p>
  
  <p>I saw similar questions on stackoverflow, but I didn't see the answers refering to the standard.</p>