title: Create a static class function that takes an infinite number of arguments
body: <p>I am trying to create a function that takes an arbitary number of strings and then outputs them all on a single line. I want this function to be a static member function of my Utils class.</p>
  
  <pre><code>Utils::output("I","am","a","sentence"); // --console-output--&gt; I am a sentence
  </code></pre>
  
  <p>Here's what I've attempted:</p>
  
  <p><strong><em>Utils.h:</em></strong></p>
  
  <pre><code>class Utils{
  public:
      template&lt;typename First, typename ... Strings&gt;
      static void output(First arg, const Strings&amp;... rest);
  };
  </code></pre>
  
  <p><strong><em>Utils.cpp:</em></strong></p>
  
  <pre><code>void Utils::output() {
      std::cout&lt;&lt;std::endl;
  }
  
  template&lt;typename First, typename ... Strings&gt;
  void Utils::output(First arg, const Strings&amp;... rest){
      std::cout&lt;&lt;arg&lt;&lt;" ";
      outputs(rest...);
  }
  </code></pre>
  
  <p><strong><em>main.cpp:</em></strong></p>
  
  <pre><code>int main() {
      Utils::output("I","am","a","sentence");
      return 0;
  }
  </code></pre>
  
  <p>My project is currently not even compiling! I am getting this error:</p>
  
  <pre><code>error LNK2019: unresolved external symbol "public: static void __cdecl Utils::output&lt;char const *,char [3],char [2],char [9]&gt;( referenced in function _main First.exe : fatal error LNK1120: 1 unresolved externals
  </code></pre>