今天我第一次构建了我的项目的 64 位版本。基本上它编译、链接和运行正常,除了抱怨新的 64 位 size_t 类型和简单的 int 类型之间不兼容的警告。这主要发生在我的代码中的这种情况下:
void func(std::vector<Something> &vec)
{
int n = vec.size();
for (int i=0; i < n; i++)
{
....vec[i]....
}
}
这很容易解决,我读过一篇文章说应该使用 size_t 或 ptrdif_t 作为循环索引。但是在这种情况下我能做些什么呢?
void outsideLibraryFunc(int n);
void func(std::vector<Something> &vec)
{
int n = vec.size();
outsideLibraryFunc(n);
}
我无法更改外部库的函数声明,它需要一个 int 类型的参数,我需要将向量元素的数量传递给它。除了禁用编译器警告之外,我还能做什么?