我正在尝试重新编译一个旧游戏的源代码,这个代码没有被我编码,我也不知道使用了哪个编译器来编译它。
我在文件中收到未定义的标识符错误,这是我无法弄清楚的。错误就像这样 -
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>));
答案 0 :(得分:1)
看起来您的编译器要么缺少某些标准库,要么没有正确安装/配置。
你可以:
修复编译器的配置(特别是检查包含路径)
切换到其他编译器
安装缺少的库的第三方版本(查看stlport)
替换正在使用的程序中使用缺少的库类的代码
答案 1 :(得分:0)
实际上还有一些其他头文件,它们具有相同的方法名称,导致编译器混淆。所以我只是在方法名称前添加了vector命名空间来解决它。像这样 -
vector<Type>::begin()
是的,它是矢量。