cstdinttypedef 肯定可以绑定到char变量.例如,它很可能uint_least8_t与之结合unsigned char并int_least8_t结合signed char.
标准是否保证类似的东西不会发生size_t或类似的类型?或者至少有一个纯理论上的机会,这些类型将绑定到某些字符类型,unsigned char甚至可能wchar_t?
我们所知道的std::size_t是:
类型size_t是一个实现定义的无符号整数类型,它足够大,可以包含任何对象的字节大小.
如果unsigned char满足这个条件,它可以用作std::size_t.
然而,这种关注纯粹是理论上的,因为没有一个真正的平台(我知道)哪里(好吧,这是错误的)使用char类型unsigned char足够宽std::size_t等.
如果你是超级偏执狂,你可以至少int用一元来提升价值+:
std::cout << +vector.size();
Run Code Online (Sandbox Code Playgroud)
即使尺寸类型是字符类型,也会打印该数字.
对于读取,您可以使用类型的变量std::common_type<unsigned int, std::size_t>::type(可能通过a typedef),然后进行边界检查以防万一sizeof(int) > sizeof(std::size_t).