title: Should I default virtual destructors?
body: <p>I have an abstract class that is declared as follow:</p>
  
  <pre><code>class my_type {
  public:
      virtual ~my_type() = default;
      virtual void do_something() = 0;
  };
  </code></pre>
  
  <p>Is it considered good practice to declare the destructor like this, with the <code>default</code> keyword? Is there a better way?</p>
  
  <p>Also, is <code>= 0</code> a modern (C++11) way of specifying no default implementation, or there is a better way?</p>