title: confusion in variadic template
body: <p>While exploring variadic templates, I found that recursive function could be with and without template but now my code is as below and I wondering why the <code>add()</code> is not called and neither the compiler throws any warning.</p>
  <pre><code>//why this one is not called   
  void add(){
      std::cout &lt;&lt; &quot;[]&quot;;
  }
  
  template &lt;typename T&gt;
  void add(T x){
      std::cout &lt;&lt; x &lt;&lt; &quot;{}&quot;;
  }
  
  template &lt;typename T, typename ...ARGS&gt;
  void add(T x, ARGS ...a){
      std::cout &lt;&lt; x &lt;&lt; &quot;:&quot;;
      add(a...);
  }   
  
  int main()
  {
    add(3.1, 3.4, &quot;6.7&quot;, 4u, &quot;7.54&quot;);
    return 0;
  }
  </code></pre>
  <p>Also when I comment <code>add(T x)</code>, the <code>add()</code> is called. I am confused.</p>