非法使用此类型作为表达式 - VS 2012

时间:2013-01-07 01:26:16

标签: c++

在编译我的源代码时出现此错误,'MPageArrayCursor':在此部分源代码中非法使用此类型

class MPageArrayCursor { 
protected: 
    int m_nIndex;

public: 
    MPageArrayCursor(int nIndex) { 
        m_nIndex = nIndex; 
    } 

    virtual ~MPageArrayCursor(); 

    int GetIndex() {
        return m_nIndex; 
    } 

    void SetIndex(int nIndex) {
        m_nIndex = nIndex;
    } 
};

void Add(T pData, MPageArrayCursor* pCursor=NULL)
{
    int nFreeSlot = m_UnusedQueue.top();
    m_UnusedQueue.pop();

    Set(nFreeSlot, pData, pCursor);
}

最初是VC ++ 2k10解决方案,我移植到2k12。 为什么我收到这个错误?

这是完整的代码:http://pastebin.com/xjVKCZjZ

1 个答案:

答案 0 :(得分:2)

您的代码工作正常,除非您需要在VS2012上包含std::greater函数运算符的函数头

#include <functional>