title: With explicitly deleted member functions in C++11, is it still worthwhile to inherit from a noncopyable base class?
body: <p>With explicitly deleted member functions in C++11, is it still worthwhile to inherit from a noncopyable base class?</p>
  
  <p>I'm talking about the trick where you privately inherit a base class which has private or deleted copy constructor and copy assignment (e.g. <a href="http://www.boost.org/doc/libs/release/libs/utility/utility.htm#Class_noncopyable" rel="noreferrer"><code>boost::noncopyable</code></a>).</p>
  
  <p>Are the advantages put forward in this <a href="https://stackoverflow.com/questions/7823990/what-are-the-advantages-of-boostnoncopyable">question</a> still applicable to C++11?</p>
  
  <hr>
  
  <p>I don't get why some people claim it's easier to make a class non-copyable in C++11.</p>
  
  <p>In C++03:</p>
  
  <pre><code>private:
      MyClass(const MyClass&amp;) {}
      MyClass&amp; operator=(const MyClass&amp;) {}
  </code></pre>
  
  <p>In C++11:</p>
  
  <pre><code>MyClass(const MyClass&amp;) = delete;
  MyClass&amp; operator=(const MyClass&amp;) = delete;
  </code></pre>
  
  <hr>
  
  <p><strong>EDIT:</strong></p>
  
  <p>As many people have pointed out, it was a mistake to provide empty bodies (i.e. {}) for the private copy constructor and copy assignment operator, because that would allow the class itself invoke those operators without any errors. I first started out not adding the {}, but ran into some linker issues that made me add the {} for some silly reason (I don't remeber the circumstances). I know better know. :-)</p>