title: How to deal with: redeclaration of C++ built-in type ‘char16_t’
body: <p>In a C++11 project I have to use external C library. This library main header file defines</p>
  
  <pre><code>typedef uint16_t        char16_t;  
  </code></pre>
  
  <p>And because of it compilation of the C++ program which includes this library fails, with the message:</p>
  
  <pre><code>redeclaration of C++ built-in type ‘char16_t’
  </code></pre>
  
  <p>The only idea I have is to repackage whole library but because <code>char16_t</code> is pervasive in this library it would be very time consuming (if even possible). Are there some sensible ways of dealing with this problem?</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>I have also another idea of removing problematic line and replacing every occurrence of char16_t with uint16_t but I would have to modify third party library headers and I do not particularly like this idea (there can be more similar errors). So I also wonder whether there is some good way of dealing of broader problem of incompatibilities between C++ and C when including headers.</p>