title: When is deleting a template instantiation preferable to deleting a non-template overload?
body: <p>Suppose I have a template that works with raw pointers:</p>
  
  <pre><code>template&lt;typename T&gt;
  void processPointer(T* ptr);
  </code></pre>
  
  <p>I don't want this to be called with <code>void*</code> pointers. It seems I have two choices. I can delete a non-template overload:</p>
  
  <pre><code>void processPointer(void*) = delete;
  </code></pre>
  
  <p>Or I can delete a template instantiation:</p>
  
  <pre><code>template&lt;&gt;
  void processPointer&lt;void&gt;(void*) = delete;
  </code></pre>
  
  <p>Declaring the non-template overload is easier (no futzing with angle brackets). Are there reasons why I'd prefer to delete the template instantiation instead?</p>