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