【问题标题】:Eclipse giving ambigous function warning on overloaded functionEclipse 对重载函数给出模棱两可的函数警告
【发布时间】:2017-03-13 10:19:47
【问题描述】:

我有这两个功能

bool checkIfPlayerWon(const F &field){
  return checkIfPlayerWon(field, player);
}

bool checkIfPlayerWon(const F &field, int current_player){

player 是我班级的成员 var。

现在我主要调用

if(human_player.help.checkIfPlayerWon(my_field))

if(pc_player.help.checkIfPlayerWon(my_field))

现在一切正常,程序按预期工作。但是eclipse给了我警告,函数checkIfPlayerWon是模棱两可的,然后告诉我:

'checkIfPlayerWon' is ambiguous '
Candidates are:
bool checkIfPlayerWon(const playfield &)
bool checkIfPlayerWon(const playfield &, int)
'

为什么日食会这样做?很明显,它应该调用第一个函数,因为它只有一个参数。 gcc编译器搞定了,为什么eclipse不行呢?

【问题讨论】:

  • Eclipse 的 C++ 解析器(CTD 的一部分)还可以,但并不出色。相信你的编译器。我通常最终会关闭它。
  • 我觉得它非常有用并且希望它能够工作。也许其他人知道这是一个错误还是如何修复它。

标签: c++ eclipse warnings


【解决方案1】:

我不知道如何让 Eclipse 找出你想要的重载函数,但是在不禁用整个 C++ 解析器的情况下很容易关闭这个模棱两可的警告。

转到 Window->Preferences->C/C++->Cody Analysis 并在搜索选项卡中写入 ambiguous。然后它会让你关闭警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多