c++ - C++ 自动返回类型
问题描述
我写了一个看起来像这样的函数:
auto fn(auto x) {
return x;
}
我用不同的参数调用了它两次:
std::cout << fn(3124) << std::endl;
std::cout << fn("hello world") << std::endl;
它工作正常,但我不明白为什么 - 我认为编译器推导出函数的常量返回类型 - int(由于第一次调用 - fn(3124))。似乎编译时生成的函数看起来像
template<typename T>;
T fn(T x) {
return x;
}
我不知道为什么。请解释。
解决方案
auto fn(auto x)
是 C++20 版本的
template<class X>
auto fn(X x)
因此,它将为每个调用它的参数类型实例化,每个不同的参数类型都有不同的返回类型。该功能称为缩写功能模板
推荐阅读
- oracle - 验证通过 Oracle 发送的电子邮件
- python-3.x - xgboost 预测期间的异常:无法从 DMatrix 初始化 DMatrix
- ios - 如何在 iOS 中打开外部链接?
- java - 生成HT表时Hibernate继承更新问题
- csh - 评估命令并将其分配给变量
- spring - 春季事务未通过 jpa 提交
- reactjs - 重新加载时反应原生的改变风格
- asp.net - 从单独的 .cs 文件访问 .aspx 页面属性/变量
- python - 如何在回调函数 ROS 中有 fig.canvas.draw()?
- c# - 在不缓存数据的情况下覆盖 ActionResult