现在我知道为什么它不会起作用,如果差异是返回类型,但我真的不明白为什么下面的函数会是ambiguos:
template<typename... Args>
static void addTo(const Entity &en, Args...args){
//something
}
and
template<typename... Args>
void addTo(const Entity &en, Args...args)
现在请在后台解释它的工作方式,因为我似乎对这些东西的工作原理不太了解。在我看来它应该起作用:
两个函数的调用方式不同(不同的运算符,一个运行类名本身,一个运行实例)
~~我的猜猜~~
现在这只是猜测,但它似乎是唯一合乎逻辑的解释,所以请耐心等待。 所以据我所知,每个成员函数都扩展为完全限定名称(我希望它的名称是什么)。因此,这两个函数都扩展为Class :: addTo,这导致编译器无法区分它们。
~~给了什么?~~
我真的不知道为什么这不起作用。在设计方面(为什么不应该这样做)和技术方面(除了我上面的猜测)。