C++日食给出了常量参数的"Invalid Arguments"

C++ eclipse gives "Invalid Arguments" for const parameter

本文关键字:参数 Invalid Arguments 常量 C++      更新时间:2023-10-16

我正在使用Eclipse Luna 2 CDT,并且索引器存在wierd问题。索引器失败,参数为"const"。我使用的是C++11和其他C++11函数工作良好。

样品类别

class Test {
public:
    int getX();
}

这在eclipse 中没有问题

void method(Test& t) {
    t.getX();
}

这为wierd提供了无效参数异常:无效参数'候选为:int getX()'

void method(const Test& t) {
    t.getX(); //ERROR: Invalid arguments in eclipse
}

我的问题是为什么Eclipse不能使用const参数。这可以在构建gcc时找到,没有任何问题。

C++编译器,为了防止意外修改对象,常量不能调用非常量对象后缀方法。

我们可以这样修复:

int getX() const;

常量对象和非常量对象都可以调用它。

clang编译器工作的原因,可能是clang问题(我们稍后可以搜索)或某些优化导致忽略检查。

添加:

9119clang C++uncated clangbugs RESO DUPL在const对象上调用非const方法时无错误和其他内容。

我认为这是叮当声的问题,新版本也许可以修复。