title: Should interfaces such as NonCopyable and NonMovable provide virtual destructors?
body: <p>Should interfaces such as NonCopyable and NonMovable provide virtual destructors or not, and just declare the destructor protected?</p>
  
  <p>I can't imagine anyone wanting to store objects as NonCopyable/NonMovable and use them in a polymorphic way like this.</p>