C++ 如何在C/C++;要转换到的类型?

C++ 如何在C/C++;要转换到的类型?,c++,c,casting,C++,C,Casting,有办法吗 if(...) return (char)value; return (unsigned char)value; 通过将支票移动到演员阵容中来获得 return (???)value; 目标是以不同的方式解释价值的内容 (无符号字符)144=144和(char)144=>112</p>< P>不,在C和C++中,函数的返回类型是固定的,即它总是返回相同的类型。即使您尝试强制转换为return语句的一部分,返回值也将隐式转换为函数的返回类型(如果可能)。如果无法进行隐式转换,则

有办法吗

if(...)
  return (char)value;

return (unsigned char)value;
通过将支票移动到演员阵容中来获得

return (???)value;
目标是以不同的方式解释价值的内容
(无符号字符)144=144和(char)144=>112</p>< P>不,在C和C++中,函数的返回类型是固定的,即它总是返回相同的类型。即使您尝试强制转换为
return
语句的一部分,返回值也将隐式转换为函数的返回类型(如果可能)。如果无法进行隐式转换,则会出现编译错误

所以

将始终返回类型为
returntype


在C++中,你可以使用模板来“改变”返回类型,但是一旦模板定义被解决,它就是一个故事。Cast不会更改实际返回类型。

没有“C/C++”语言:请选择一种。否。。。。。。。。。。。。。。函数返回您在函数原型中声明的类型,例如
ReturnType foo()
返回?静态施法(值):静态施法(值)。之后,您只需要返回类型的
变量
值的类型是什么?您希望实现什么?使用variant return type您试图解决的问题是什么使用C++14如何处理
auto
return type?如何返回一个可以包含任何一种类型的类型?例如,在C++17中,您可以让
std::variant
@scrutari返回类型推断在编译时完成。@scrutari基于参数类型,它在编译时仍然精确地生成1个类型。使用
if constexpr
可以更改该类型,尽管这仍然是一个编译时功能实际上需要的是更改值的解释,而不是更改函数的返回类型
returntype foo(...) {.... return x;}