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;}