Сегодня я впервые сделал 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, и мне нужно передать ей количество элементов вектора. Что я могу сделать, кроме отключения предупреждений компилятора?
unsigned int
. - person Tyler McHenry   schedule 30.09.2010