为什么 gcc 编译这个而 msvc 没有

Why does gcc compile this and msvc doesn't

本文关键字:msvc 没有 gcc 编译 为什么      更新时间:2023-10-16

这是我的类

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表达式必须有类类型错误。有办法解决这个问题吗?

您将containers定义为返回向量的函数

std::vector<Container> containers();

修复为:

std::vector<Container> containers;

为什么gcc编译这个而msvc不

我怀疑您在将代码从gcc移植到msvc时搞砸了,正如NathanOliver所发现的那样。

相关文章: