1

我正在尝试创建我刚刚设置的类的向量,但我不断收到错误。谁能给我一些建议?这是我的相关代码:

class process{
    public:
        enum state {New,Ready,Running,Waiting,IO,Terminated};
        double CPUburst[MAXCPUBURSTS];
        double IOburst[MAXCPUBURSTS-1];
        int nCPUbursts; // The number of CPU bursts this process actually uses
        int priority, type; // Not always used
        int currentBurst; // Indicates which of the series of bursts is currently being handled
};

vector<process> processTable;

我得到的错误是:

"template argument for 'template<class _Alloc> class std::allocator' uses local type 'main(int, char**)::process*'"

4

2 回答 2

5

我想你已经class process在里面定义了main

从标准(旧)

本地类型、没有链接的类型、未命名类型或由这些类型中的任何一种组合而成的类型不应用作模板类型参数的模板参数。

但是,这在 c++11 及更高版本中发生了变化。

因此,在全局范围内定义类或使用支持此功能的编译器(或启用)。在 g++ 中,您可以使用-std=c++0x-std=c++11根据版本启用此功能。

于 2013-04-28T04:14:42.213 回答
2

Antimony 已经从您的代码中解码了您不愿提及的相关细节。

修复是在您的编译器中启用 C++11 支持(通常是-std=c++11-std=gnu++11)。C++03 不允许使用本地类作为模板参数。C++11 可以。

于 2013-04-28T04:14:55.567 回答