title: When to use =default vs =delete
body: <p>To my understand these semantics are used only with the copy constructor, moving constructor, copy assignment, moving assignment, and the destructor. Using <code>= delete</code> is for prohibiting the use of one of the functions, and that <code>= default</code> is used if you want to be explicit to the compiler on where to use the defaults for these functions.</p>
  
  <p>What are the best practices when using these keywords while making a class? Or rather how do I keep mindful of these when developing a class?</p>
  
  <p>For example, if I don't know whether I'll use one of these functions, is it better to prohibit it with <code>delete</code> or allow it and use <code>default</code>?</p>