title: Why use private copy constructor vs. deleted copy constructor in C++
body: <p>Why would one prefer to use a private copy constructor over deleting the copy constructor in C++?</p>
  
  <p>E.g.:</p>
  
  <pre><code>class Entity
  {
  private:
      Entity(const Entity &amp;copy) // &lt;== private copy constructor
      {
         /* do copy stuff */
      }
  public:
      /* more code here... */
  }
  </code></pre>
  
  <p>As opposed to:</p>
  
  <pre><code>class Entity
  {
  public:
      Entity(const Entity &amp;copy) = delete; // &lt;== copy constructor deleted
  
      /* more code here... */
  }
  </code></pre>
  
  <p>Related questions that don't quite answer what I'm asking:</p>
  
  <p><a href="https://stackoverflow.com/questions/6811037/whats-the-use-of-the-private-copy-constructor-in-c">What's the use of the private copy constructor in c++</a></p>
  
  <p><a href="https://stackoverflow.com/questions/32323640/deleted-vs-empty-copy-constructor">Deleted vs empty copy constructor</a></p>