Я пытаюсь перекомпилировать исходный код старой игры, который не был написан мной, и я не знаю, какой компилятор использовался для компиляции.
Я получаю неопределенные ошибки идентификатора в файле, которые я не могу выяснить. Ошибки такие:
Error : Undefined identifier 'begin'
Error : Undefined identifier 'capacity'
Error : Undefined identifier 'size'
Error : Undefined identifier 'back'
Error : Undefined identifier 'pop_back'
Я почти уверен, что мне не хватает одного или двух заголовочных файлов. Есть идеи, какие заголовки мне там не хватает?
PS: я использую CodeWarrior IDE, если это поможет.
Редактировать: —
Вот строки кода, которые дают ошибки —
const OzU32 nCapacity = OzU32(capacity());
const OzU32 nAllocated = Capacity() - OzU32(size());
std::transform(
m_pPoolMemory,
m_pPoolMemory + nCapacity,
begin(),
std::ptr_fun(SetPointer<Type>));
Похоже, что ваш компилятор либо пропускает часть стандартной библиотеки, либо неправильно установлен / настроен.
Вы также можете:
Исправьте конфигурацию компилятора (особенно проверьте пути включения)
Переключиться на другой компилятор
Установите стороннюю версию отсутствующей библиотеки (посмотрите на STLport)
Замените код в программе, над которой вы работаете, используйте отсутствующие классы библиотек.
На самом деле были некоторые другие заголовочные файлы с такими же именами методов, что вызывало путаницу в компиляторе. Поэтому я просто добавил векторное пространство имен перед именем метода, чтобы разобраться с этим. Как это —
vector<Type>::begin()
И да, это был вектор.