title: Last resort/catch-all/fallback template overload
body: <p>As is evident in a question I asked previously,
  <a href="https://stackoverflow.com/questions/28405921/overload-resolution-templates-and-inheritance/28406090?noredirect=1#comment45149377_28406090">Overload resolution, templates and inheritance</a>, a template overload will be chosen before an overload which requires derived-to-base conversion.</p>
  
  <p>However, is there a way to provide a fallback overload which is only selected as an absolute last resort if there is nothing else that matches? In this particular case <code>enable_if</code> could be used but that would not be extensible, unfortunately.</p>
  
  <p>Like this:</p>
  
  <pre><code>// My library has this and has no knowledge of the possible overloads of foo
  template&lt;typename T&gt;
  void foo(const T &amp;) { /* Do something */ }
  
  // The user of the library provides this:
  void foo(const UserBaseType &amp;) { /* Do something */ }
  
  // User calls foo with object derived from UserBaseType:
  foo(UserDerivedType());
  </code></pre>
  
  <p>In this case, I want the UserBaseType overload to be called, not the template overload.</p>