title: Should the user-defined empty destructor never be used?
body: <pre><code>struct A1
  {
      ~A1() {} // A1 is not trivially destructible
  };
  
  struct A2
  {
      ~A2() = default; // A2 is trivially destructible
  };
  </code></pre>
  <p><code>A2</code> is better than <code>A1</code>, because <code>A2</code> is trivially destructible while <code>A1</code> isn't.</p>
  <p>I think maybe we can safely say:</p>
  <p><em>1. The user-defined empty destructor should never be used.</em></p>
  <p><em>2. Any user-defined empty destructor should be replaced with the defaulted one.</em></p>
  <p>Am I right?</p>