c++ - 为什么返回类型上的 'const' 限定符对标有 __forceinline/inline 的函数没有影响?
问题描述
我正在用 clang 编译我的 C++ 代码,并且想知道编译器错误背后的含义:
error : 'const' type qualifier on return type has no effect
以下语法会生成错误:
inline const int foo();
__forceinline const bool bar();
解决方案
这实际上是一个警告,由命令行开关升级为错误。它与inline
or无关,__forceinline
并且非常不言自明。
const
和volatile
函数返回类型的限定符,当函数按 value 返回时,没有任何意义,因为从概念上讲,返回的值要么被丢弃,要么用作调用方初始化对象的临时值。const
/volatile
该对象的资格在调用者的管辖范围内。例如,int
从返回的函数调用初始化可变变量是完全合法的const int
。
推荐阅读
- node.js - 来自 Postman 和 Node 的 HTTP 请求,但不是 React
- scala - Spark (Scala) 修改数据集列的内容
- python - OverflowError: (34, 'Numerical result out of range') 使用 PyTorch 学习率调度程序
- opencart - 在 Opencart V 3.0.3.0 中提交注册表时显示所有错误
- mysql - 计算日期之间
- android - 即使在取消订阅 IAP google 后也续订订阅
- php - 功能AFTER authentication and BEFORE view (laravel)
- python-3.x - 如何获得类 Meta 的正确属性?
- r - 使用 R 中的变量名提取列表中的项目
- r - 将一个矩阵拆分为多个矩阵