title: C-Style Strings as template arguments?
body: <p>Can C-Style strings be used as template arguments?</p>
  
  <p>I tried:</p>
  
  <pre><code>template &lt;char *str&gt;
  struct X
  {
      const char *GetString() const
      {
           return str;
      }
  };
  
  int main()
  {
      X&lt;"String"&gt; x;
      cout&lt;&lt;x.GetString();
  }
  </code></pre>
  
  <p>And although I get no complaints about the class definition, the instantiation yields <code>'X' : invalid expression as a template argument for 'str'</code> (VC).</p>