C ++ eclipse给出了#34;无效的参数"对于const参数

时间:2015-04-03 01:08:44

标签: c++ eclipse c++11

我正在使用Eclipse Luna 2 CDT并且索引器存在一个奇怪的问题。索引器失败了" const"用于参数。我正在使用C ++ 11和其他c ++ 11函数正常工作。

样本类

class Test {
public:
    int getX();
}

这在eclipse中没有问题

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

这给出了奇怪的无效参数异常:无效的参数 '候选人是:int getX()'

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

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

1 个答案:

答案 0 :(得分:0)

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

我们可以这样解决:

int getX() const;

const对象和非const对象都可以调用它。

为什么clang编译器工作,可能是一个clang问题(我们可以稍后搜索)或一些优化导致忽略检查。

添加

9119 clang C ++ unassignedclangbugs RESO DUPL 在const对象上调用非const方法没有错误。

我认为这是铿锵的问题,新版本可能会修复。