title: Is base case function mandatory or could it be automatically synthesized?
body: <p>In the following code :</p>
  
  <pre><code>void print()
  {
      // This is our base case fn
      ;; // Do nothing
  }
  
  template &lt;typename type1, typename... argspack&gt;
  void print(type1 a, argspack... args_rest)
  {
      cout &lt;&lt; a &lt;&lt; ((sizeof...(args_rest) != 0) ? "," : "\n");
      print(args_rest...); // I guess this recursive call is inevitable
  }
  </code></pre>
  
  <p>If the recursive call to variadic function is inevitable, the base case function is also inevitable. If so, is there a language feature, perhaps one
  that comes with modern c++,  that help a programmer get away without writing a base case function?</p>