未定义的标识符

Undefined identifiers

本文关键字:标识符 未定义      更新时间:2023-10-16

我正在尝试重新编译一个旧游戏的源代码,这不是由我编写的,我不知道哪个编译器被用来编译这个。
我在一个我无法弄清楚的文件中得到未定义的标识符错误。错误如下-

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>));

看起来你的编译器要么缺少一些标准库,要么没有正确安装/配置。

  1. 修复编译器的配置(特别是检查包含路径)

  2. 切换到不同的编译器

  3. 安装第三方版本的缺失库(查看stlport)

  4. 替换你正在处理的程序中使用缺失库类的代码

实际上还有其他一些头文件,它们具有相同的方法名称,导致编译器混淆。所以我只是在方法名前面添加了向量命名空间来计算它。像这样-

vector<Type>::begin()

是的,它是向量