gpt4 book ai didi

c++ - 如何根据输入 C++ 更改返回类型?

转载 作者:行者123 更新时间:2023-12-01 07:12:26 25 4
gpt4 key购买 nike

我将如何编写一个函数来根据输入返回不同的类型。我试过使用模板,但我不确定我明白我在做什么。如果输入是 int 我希望输出是一个字符串,反之亦然。

所以我尝试了这样的事情:

using namespace std;

template <class T>
T functionName(T s){

if(typeid(s).name() == 'i'){
return "int";
}
if(typeid(s).name() == 's'){
return 0;
}

}

不知道如何实现我在这里寻找的东西。任何指导将不胜感激。

最佳答案

问题是唯一的返回类型必须在编译时确定;您不能有多个返回不相关类型的 return 语句。

您可以使用 constexpr if (自 C++17 起)。

If the value is true, then statement-false is discarded (if present), otherwise, statement-true is discarded.

The return statements in a discarded statement do not participate in function return type deduction



例如
template <class T>
auto functionName(T s){

if constexpr (std::is_same_v<T, int>) {
return std::string("int");
} else {
return 0;
}

}

关于c++ - 如何根据输入 C++ 更改返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59046161/

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