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