title: What is a non-trivial destructor in C++?
body: <p>I was reading <a href="ftp://ftp.cs.uregina.ca/pub/class/210/C++FAQ/virtual-functions.html#20.4" rel="noreferrer">this</a> which mentions destructors being trivial and non-trivial.</p>
  
  <blockquote>
    <p>A class has a non-trivial destructor if it either has an explicitly
    defined destructor, or if it has a member object or a base class that
    has a non-trivial destructor.</p>
  </blockquote>
  
  <p>In example, I have a class,</p>
  
  <pre><code>class C {
      public:
       ~C(); // not explicitly declared.
  };
  </code></pre>
  
  <p>If <code>C::~C()</code> is implicitly defined does it make a trival dtor?</p>