【发布时间】:2018-11-26 15:47:39
【问题描述】:
我正在尝试创建一个返回类型应取决于 switch 语句的函数,例如:
auto function_name (int value) {
switch (value) {
case 1 : {return 2.3;}
case 2 : {return 1;}
case 3 : {return "string";}
}
}
但我不能因为一个错误:
error: inconsistent deduction for auto return type: 'double' and then 'int'
我可以做些什么来创建类似于上面示例的功能?
【问题讨论】:
-
由于多种原因,您不能这样做。
auto必须在编译时知道。 -
C++是一种静态类型语言。 -
您可能对
std::variant感兴趣。 -
你想用这个解决什么实际问题?这根本不是类型在 C++ 中的工作方式。虽然您可以使用 std::variant,但我不太愿意推荐它。
标签: c++ return-type auto type-deduction