或者它可以是一个单独的无符号整数类型吗? 我有针对不同(无符号)整数类型的模板函数的不同专业化。我需要为size_t提供一个单独的专业化吗?
有没有一种方法可以将 std::string 转换为 size_t?问题在于 size_t 是平台相关类型(尽管它是由 sizeof 的结果得出的)。因此,我不能保证将 string 转换为 unsigned long 或 unsigned int 将正确完成。 编辑: 一个简单的例子是:s...
有没有办法在不进行强制类型转换或产生编译器警告的情况下,给printf函数传递一个size_t类型的参数呢?(我总是会使用-Wall选项进行编译。)
《C++程序设计语言》中,Bjarne Stroustrup写道: unsigned整数类型非常适合将存储视为位数组的用途。为了表示正整数而使用unsigned而不是int来获得多一个比特位几乎从不是一个好主意。通过声明变量为unsigned来确保某些值为正数的尝试通常会被隐式转换规则所破...
我正在使用GCC Linaro编译器来编译我的代码。它报错 unknown type name size_t,报错来自于libio.h,而libio.h是从stdio.h中引用的。 在我的代码中,我只是包含了stdio.h。 有没有人能告诉我如何解决这个错误。
在标准 C++ 中是否有 size_t 的带符号变体?指的是与 size_t 完全相同的位大小,但是带符号。 当然我可以这样做: #include <type_traits> using signed_size_t = std::make_signed_t<std::si...
我刚刚看到了一些C++代码。它使用条件来决定是向前还是向后遍历一个std::vector。编译器没有报错,但我认为size_t是无符号的。这样做是否危险?vector<int> v { 1,2,3,4,5 }; bool rev = true; size_t start,...
我最近了解到,size_t的引入是为了使代码未来能够应对本地位数增加和可用内存增加。具体使用定义似乎在存储某些东西的大小,通常是一个数组。现在,我必须想知道这种未来保护措施应该走多远。如果接下来要对数组进行迭代的任务使用 unsigned int 作为索引数组,那么使用具有未来保护和适当大小的...
C标准保证int类型能够存储所有可能的数组大小,至少这是我从阅读§6.5.2.1,子节1(数组下标约束)中了解到的。 引用语句如下: “其中一个表达式应具有“指向对象类型”的指针类型,另一个表达式应具有整数类型,并且结果具有“类型”类型。” 由于我们将使用int作为数组下标,那么为...