title: Deducing Non-Type Template Argument Unsigned Int / size_t
body: <p>Im trying to deduce a non-type template argument.</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  template &lt;unsigned int S&gt;
  void getsize(unsigned int s) { std::cout &lt;&lt; s &lt;&lt; std::endl; }
  
  int main()
  {
    getsize(4U); 
  // Id like to do this without explicitly stating getsize&lt;4U&gt;(4);
  // or even getsize&lt;4U&gt;(); 
  // Is this possible?
  }
  </code></pre>
  
  <p>But I am getting error:</p>
  
  <pre><code>deduce_szie_t.cpp: In function 'int main()':
  deduce_szie_t.cpp:9:15: error: no matching function for call to 'getsize(unsigned int)'
  deduce_szie_t.cpp:9:15: note: candidate is:
  deduce_szie_t.cpp:4:6: note: template&lt;unsigned int &lt;anonymous&gt; &gt; void getsize(unsigned int)
  deduce_szie_t.cpp:4:6: note:   template argument deduction/substitution failed:
  deduce_szie_t.cpp:9:15: note:   couldn't deduce template parameter '&lt;anonymous&gt;'
  </code></pre>
  
  <p>Is it possible to deduce the unsigned int, without having to explicitly state the template parameter?</p>
  
  <p>Id like to have it clean like: getsize(4U)
  I want to avoid writing: getsize&lt;4U>()</p>
  
  <p>Thanks alot for any help</p>