title: Does a default virtual destructor prevent compiler-generated move operations?
body: <p>Inspired by the post <em><a href="https://stackoverflow.com/questions/33932824/why-destructor-disabling-the-generation-of-implicit-move-functions">Why does destructor disable generation of implicit move methods?</a></em>, I was wondering if the same is true for the default virtual destructor, e.g.</p>
  
  <pre><code>class WidgetBase // Base class of all widgets
  {
      public:
          virtual ~WidgetBase() = default;
          // ...
  };
  </code></pre>
  
  <p>As the class is intended to be a base class of a widget hierarchy I have to define its destructor virtual to avoid memory leaks and undefined behavior when working with base class pointers. On the other hand I don't want to prevent the compiler from automatically generating move operations.</p>
  
  <p>Does a default virtual destructor prevent compiler-generated move operations?</p>