请参见以下代码:
void stringPtrFunc(const std::string *s) {}
void boolFunc(const bool b) {}
int main() {
boost::variant<std::function<void(const std::string *)>, std::function<void(const bool)>> myVariant;
myVariant = &stringPtrFunc; // Compiles fine
myVariant = &boolFunc; // Error
}
我收到关于模棱两可的过载的错误。似乎stringPtrFunc可转换为boolFunc,反之亦然。为什么没有完全匹配?我可以强制比赛吗?
谢谢,
Ryan