【发布时间】:2015-12-08 23:19:56
【问题描述】:
我使用的 api 有一个定义了以下两个函数的类:
Module *getParent() { return Parent; }
const Module *getParent() const { return Parent; }
当我尝试像这样调用函数的 const 版本时:
void Foo::bar(Function* F){
const Module* parent = F->getParent();
}
编译器告诉我函数调用不明确。 由于我无法更改函数声明,我如何在函数调用中指定我想要的函数版本?
编辑:根据要求,确切的错误是:
'getParent' is ambiguous Candidates are: llvm::Module * getParent() const llvm::Module * getParent()
这是文件中唯一的错误。
【问题讨论】:
-
F的类型是什么? -
问题出在您没有显示的代码中。
-
代码仍然不足以重现问题(更不用说它实际上需要 llvm 标头和合适的构建设置)。既然您似乎有其中之一:exact 错误是什么(确保您还包括 first 错误)。
-
我无法重现 gcc 的问题。这可能特定于特定的编译器。你用的是哪一个?