为什么gcc会编译这个而msvc不会

时间:2018-10-31 12:57:57

标签: c++ visual-studio gcc compiler-errors compilation

这是我的课程

class ContainerStack{
public:
    int getCapacity();
    int getSize();
    const Container& at(int height);
    void take(Container aContainer);
    Container give();

private:
    std::vector<Container> containers();
};

这是getCapacity()和getSize()方法

int ContainerStack::getCapacity(){
    return containers.capacity();
}

int ContainerStack::getSize(){
    return containers.size();
}

GCC编译所有内容都没有问题,但是使用Visual Studio 2017时,我得到一个 E0153表达式必须具有类类型错误。有什么办法解决吗?

1 个答案:

答案 0 :(得分:5)

您将containers定义为一个函数返回向量:

std::vector<Container> containers();

修复至:

std::vector<Container> containers;
  

为什么gcc会编译而msvc不能

我怀疑您在将代码从gcc移植到msvc as NathanOliver spotted时搞砸了。