gpt4 book ai didi

c++ - C++一种函数,可以根据接受的值返回两种类型之一

转载 作者:行者123 更新时间:2023-12-02 09:56:40 26 4
gpt4 key购买 nike

fun(int a) {
if (a) return a; return "empty";
}

我需要一个获取数字的函数,并根据它返回的数字返回一个int变量或一个字符串。
请告诉我如何实现这样的功能。

最佳答案

在C++ 17中,您可以使用variant:

std::variant<int, std::string> fun(int a) {
if (a) return a; return "empty";
}

或者将结构体与 optional一起使用:
struct r {
std::optional<int> i;
std::optional<std::string> s;
};

r fun(int a) {
r out;
if (a) out.i = a; else out.s = "empty";
return out;
}

或者,对于先前的标准,请使用带有指示有效性的字段的结构。
struct r {
enum class type {i, s};
int i;
std::string s;
type t;
};

r fun(int a) {
r out;
if (a) {
out.i = a;
out.t = r::type::i;
else {
out.s = "empty";
out.t = r::type::s;
}
return out;
}

关于c++ - C++一种函数,可以根据接受的值返回两种类型之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59547137/

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