Eclipse在重载函数上给出了ambigous函数警告

时间:2016-10-31 10:31:27

标签: c++ eclipse warnings

我有这两个功能

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

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

播放器是我班级的成员。

现在我主要打电话给

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)
'

为什么eclipse这样做?很明显它应该调用第一个函数,因为它只有一个参数。 gcc编译器得到它,但为什么不eclipse?

1 个答案:

答案 0 :(得分:0)

我不知道如何让 Eclipse 找出您想要的重载函数,但模棱两可的警告很容易关闭,而无需禁用整个 C++ 解析器。

进入Window->Preferences->C/C++->Cody Analysis,在搜索标签里写ambiguous。然后它会让你关闭警告。