Linux中的嵌套向量

时间:2014-11-19 03:48:37

标签: c++ linux templates vector g++

我正在尝试实施DivideAndConquer模板。原始项目是在VisualStudio 2013中,但是当我将源代码移动到Linux时,我会遇到错误。

#pragma once
#include <vector>
using namespace std;

template <typename Element>
class DivideAndConquer
{
    public:
        ~DivideAndConquer(){}
        vector<Element> solve(vector<Element> p);

    protected:
        virtual bool isSimple(vector<Element> p) = 0;
        virtual vector<Element> simplySolve(vector<Element> p) = 0;
        virtual vector<vector<Element>> decompose(vector<Element> p) = 0;
        virtual vector<Element> combine(vector<vector<Element>> p) = 0;
};

错误显示为DivideAndConquer.h:28: error: a function call cannot appear in a constant-expression。我的版本中有注释,因此第28行是分解函数的声明。对于涉及所有其他.h文件的嵌套向量的所有声明,都存在类似的错误。

Linux是否允许嵌套向量?在整个实施过程中,我真的不想跟踪数组的大小。

1 个答案:

答案 0 :(得分:2)

你是因为你的小错误而责怪linux ......

    virtual vector<vector<Element>> decompose(vector<Element> p) = 0;

这应该是: -

    virtual vector<vector<Element> > decompose(vector<Element> p) = 0;

>> should be separated > >