title: C++ What does the size of char16_t depend on?
body: <p>This is also related to <code>char32_t</code> and any <code>intXX_t</code>. The specification points out that:</p>
  
  <p><code>2.14.3.2</code>: </p>
  
  <blockquote>
    <p>The value of a char16_t literal
    containing a single c-char is equal to
    its ISO 10646 code point value,
    provided that the code point is
    representable with a single 16-bit
    code unit.</p>
  </blockquote>
  
  <p><code>5.3.3.1</code>:</p>
  
  <blockquote>
    <p>[..] in particular [..]
    sizeof(char16_t), sizeof(char32_t),
    and sizeof(wchar_t) are
    implementation-defined</p>
  </blockquote>
  
  <p>I can not see anything about the <code>intXX_t</code> types, apart from the comment that they are "optional" (<code>18.4.1</code>).</p>
  
  <p>If a <code>char16_t</code> isn`t guaranteed to be 2 bytes, is it guaranteed to be 16 bit (even on architectures where 1 byte != 8 bit)?</p>