c++ - 如何在 C/C++ 中动态选择要转换的类型?
问题描述
有没有办法
if(...)
return (char)value;
return (unsigned char)value;
通过将支票移入演员阵容以获得类似的东西
return (???)value;
目标是以不同的方式解释 value 的内容,例如: (unsigned char)144=>144 和 (char)144=>-112
解决方案
不,在 C 和 C++ 中,函数的返回类型是固定的,即它总是返回相同的类型。即使您尝试强制return
转换为语句的一部分,返回的值也会隐式转换为函数的返回类型 - 如果可能的话。如果无法进行隐式转换,则会出现编译错误。
所以
returntype foo(...) {.... return x;}
将始终返回一个类型的值returntype
在 C++ 中,您可以使用模板来“更改”返回类型,但一旦解决了模板定义,情况就是如此。Cast 不会改变真正的返回类型。
推荐阅读
- python - 分组还是转置?
- python - 如何在 Pandas 数据框中添加整数表示的列
- c# - 使用实体框架 C# 从数据库表中删除行数据
- javascript - 使用 vue.router 重定向到绝对路径
- android - 如何在 Android TV 中切换音频设备?
- python - (Python) 为列表中的所有对象运行函数
- c++ - bazel rules_foreign_cc cmake_external - 无法找到静态库
- javascript - 如何在javascript中循环?
- python - 用于从 S3 解析 json 并存储在 DynamoDB 中的 AWS Lambda python 函数
- flutter - Dart/Flutter:当作为参数传递时,List 中的元素字符串变为空(为什么??)