C++;:当只想使用尺寸时,应包括哪些库? 我正在学习C++。我的类的一个数据成员应该是size\u t类型。现在,代码> siZeSt不是一个内置的原始类型,而是一个定义类型(通常是一个无符号值,通常至少是int),它在C++中广泛使用。p> < >许多C++库,如 IOStry或String >将自动添加 SsieZiT到当前的范围。

C++;:当只想使用尺寸时,应包括哪些库? 我正在学习C++。我的类的一个数据成员应该是size\u t类型。现在,代码> siZeSt不是一个内置的原始类型,而是一个定义类型(通常是一个无符号值,通常至少是int),它在C++中广泛使用。p> < >许多C++库,如 IOStry或String >将自动添加 SsieZiT到当前的范围。,c++,include,size-t,C++,Include,Size T,但是,我的类不需要包含任何奇特的库。因为我想让它尽可能精简,所以我只想包含负责创建size\t的文件 这是哪个库?您可以使用\include 也见细节 < P>代码> siZeIt < /C> >由C++ > C. < /P>定义为 > 在C++中,你可以选择包含 ,然后写代码> STD::sisivit < /Cord>。普通size\u t可以编译也可以不编译,但不保证此标头可用。但是,我不建议这样做,因为它没有任何优势,并且有一个问题,即如果您忘记了std::,或者它不在包含的其他代码中

但是,我的类不需要包含任何奇特的库。因为我想让它尽可能精简,所以我只想包含负责创建
size\t
的文件

这是哪个库?

您可以使用
\include


也见细节

< P>代码> siZeIt < /C> >由C++ > C. < /P>定义为<代码> <代码> > <>在C++中,你可以选择包含<代码> <代码>,然后写代码> STD::sisivit < /Cord>。普通
size\u t
可以编译也可以不编译,但不保证此标头可用。但是,我不建议这样做,因为它没有任何优势,并且有一个问题,即如果您忘记了
std::
,或者它不在包含的其他代码中,那么代码可能无法使用其他编译器编译


由于表达式中隐式转换为无符号公共类型的问题,除了使用模板参数外,还应考虑使用符号<代码> pTrDeFifft 而不是<代码> SiZeZt。例外情况是,至少有一个经常使用的编译器在匹配非

大小\u t
模板参数(例如原始数组大小)时遇到问题。

。为了满足您的愿望,我可能会选择
我有时会在没有人观看的情况下这样做:
typedef decltype(sizeof(1))size\t
它不会导致错误,因为
size\u t
应该是
sizeof
运算符给定的类型,并且只有当基类型与以前的定义不同时,类型重新定义才会失败。不过,如果将它包含在您自己的名称空间中,可能会更容易接受。Downvoter,请解释一下愚蠢的downvote。它是。。。因为提到某个编译器的缺点?是的?我不是下拉者,但可能是因为你建议不要使用<代码> CSTDDEF < /C>,而更喜欢C++中的代码> STDDEF.H./Cuff>。C和C++代码的混合不是一个更喜欢<代码> STD::/Case> -更少类型的问题。@ SkpJeJ:好吧,但是这可能是空洞的,如所述。使用
cstdef
没有好处,也确实存在问题。它是有历史原因的,并且在C++ 11中移除了原来的理论支持。@ SkpJekes:关于你的Stand man论点。混合C和C++代码不是一个更喜欢STD:实际上是更少的类型的问题,一个人必须格外地被挑战,以便首先相信它。在哪里!“你得到灵感了吗?我甚至不知道斯特劳曼是什么意思!!这是非母语人士的问题之一。另一方面,*!”很常见。:-)