由于整数是内置类型,因此整数类类型在 C++ 中意味着什么

use*_*570 21 c++ types c++20

在阅读文档时,std::numeric_limits我发现了以下声明

还提供了所有整数类类型的特化。(自 C++20 起)

我的问题是上面的语句中整数类类型是什么意思。我的意思是,我知道这int是 C++ 中的内置类型。我们可以在C++中提供用户定义的类。但我从未读过有关整数类类型的内容。我尝试在谷歌上搜索该短语,但没有找到与此相关的任何内容。

Dav*_*ing 22

历史上我们可以看出,这与C++20中添加的迭代器概念有关;特别是,[iterator.concept.winc]/2 说

\n
\n

如果某个类型I位于一组行为与整数类型相同的实现定义类型中,则该类型是整数类类型,如下所定义。

\n

[注 1:整数类类型不一定是类类型。\xe2\x80\x94\xc2\xa0尾注]

\n
\n

该库被允许使用这些适当的整数类型之一来表示范围的大小和范围元素之间的距离。

\n


BoP*_*BoP 11

它是另一组整数类型,既不是标准整数类型,也不是扩展整数类型。

\n
\n

有五种标准有符号整数类型:\xe2\x80\x9csigned char\xe2\x80\x9d、\xe2\x80\x9cshort\nint\xe2\x80\x9d、\xe2\x80\x9cint\xe2\x80\x9d、 \xe2\x80\x9clong int\xe2\x80\x9d 和 \xe2\x80\x9clong long int\xe2\x80\x9d。在此列表中,每种类型\n提供的存储空间至少与列表中其前面的类型\n相同。\n还可能存在实现定义的扩展有符号整数\n类型。标准和扩展有符号整数类型统称为有符号整数类型。

\n
\n

这里的一个问题是 typedefintmax_t必须定义为这些整数类型中最大的一个(因此得名:-)。

\n

现在,如果一个实现要定义一组新的“整数类类型”,它们不是“标准”或“扩展”整数,而只是“类整数”,那么它可以使用这些类型而无需更改intmax_t.

\n

使我们免于因之前所有参数的使用而出现 ABI 中断intmax_t

\n