title: uint8_t and unsigned char linking error
body: <p>I'm using template function:</p>
  
  <pre><code>template&lt;typename T&gt; void func(const T&amp; value)
  {
      obj-&gt;func(value);
  }
  </code></pre>
  
  <p>where obj is object of class:</p>
  
  <pre><code>void my_object::func(int64_t value) { ... }
  void my_object::func(uint64_t value) { ... }
  void my_object::func(uint32_t value) { ... }
  void my_object::func(uint16_t value) { ... }
  void my_object::func(uint8_t value) { ... }
  </code></pre>
  
  <p>The problem is with <strong>uint8_t</strong> overload of <strong>my_object::func()</strong> override. Linker complains about unresolved external symbols to overloads, which <em>should</em> have <strong>unsigned char</strong> parameter.</p>
  
  <p>Should I replace <strong>uint8_t</strong> overload with <strong>unsigned char</strong> overload?</p>
  
  <p>Edit: Just now noticed, that linker complains about <strong>uint64_t</strong> and <strong>int64_t</strong> too.</p>
  
  <p>I compile on Windows using <strong>MSVC++ 2008 Express</strong>.</p>
  
  <p>Edit: Apologies, I <em>declared</em> <strong>my_object::func(uint8_t value)</strong> function (and other), but I <em>didn't defined</em> it.</p>