未定义的标识符

问题描述 投票:0回答:3

我正在尝试重新编译旧游戏的源代码,该游戏不是我编写的,我不知道使用哪个编译器来编译它。
我在文件中遇到未定义的标识符错误,但我无法弄清楚。错误是这样的 -

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>));
c++ undefined header-files codewarrior
3个回答
1
投票

您的编译器似乎缺少某些标准库,或者尚未正确安装/配置。

您可以:

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

  2. 切换到不同的编译器

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

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


0
投票

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

vector<Type>::begin()

是的,它是矢量。


0
投票

你好,这非常简单,很可能你忘记在这些关键字之前放置 std:: 。或者您可以简单地将其写在代码顶部: using namespace std; 通过这样做,您不需要用 std:: 按下它们,但我不建议这样做,因为它可能会导致长代码出现问题

© www.soinside.com 2019 - 2024. All rights reserved.