gpt4 book ai didi

C++ 函数返回不同的类型

转载 作者:行者123 更新时间:2023-12-05 05:57:28 29 4
gpt4 key购买 nike

我试图创建一个函数,该函数基于参数返回值,如下所示:

type getValue(string input) return <OUTPUT>

OUTPUT 的类型将更改为 intstringbool 等,取决于什么输入已给出。我得到了排序,但我一直遇到的问题是返回类型。我试过 auto 类型,但我得到的只是这个错误:

error: inconsistent deduction for 'auto': 'int' and then 'char'

一遍又一遍地使用此函数可以输出的每种类型。我不会做模板,因为你必须这样做

getValue<type>(input);

而且我没有办法只是猜测输出以放入模板类型。我已经使用了很多我可以做的选项,但它太复杂了。

最佳答案

正如评论所指出的,您需要使用 std::variantstd::any 作为返回类型。

std::any getValue(string input) {
if (input == ...) {
return "string return type";
}
if (input == ...) {
return 100;
}
if (input == ...) {
return 123.456;
}

return false;
}

但是,如果您只能生成一小组返回类型,请考虑使用变体,因为它受到的限制更多一些:

// assuming these are the only 4 types you can return
using getValueReturnType = std::variant<std::string, int, double, bool>;

// The function definition would be exactly the same as above with std::any
getValueReturnType getValue(string input);

关于C++ 函数返回不同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68793177/

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