gpt4 book ai didi

c++ - 模棱两可的调用(从 char* 到 lambda 与 std::string 的转换)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:52 25 4
gpt4 key购买 nike

根据我的编译器 gcc-4.6,下面示例中对 func 的调用是不明确的。

void func(const std::string &str) {
}

void func(std::function<std::string()> f) {
}

void test() {
func("Hello");
}

编译器这样说是否正确?如果我删除第一个重载,此代码将无法编译,因为它将无法实例化所涉及的模板。

除了重命名这两个函数之一或显式转换为 std::string 之外,还有什么办法可以解决这个问题吗?

最佳答案

可由SFINAE在std::function的构造函数中解析。但是,它似乎不是必需的,也不是由 GCC 提供的。因此,您不能轻而易举地依赖它。

关于c++ - 模棱两可的调用(从 char* 到 lambda 与 std::string 的转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com