在 C 中将 Auto 作为参数传递
存在一种在将“auto”关键字传递给另一个时将其用作参数的方法功能。也就是说,你可以定义这样的函数:
int function(auto data) { // Does something }
C 20 引入 Auto 作为函数参数类型
C 20 允许使用“auto”作为函数参数类型。以下面的代码片段为例:
int function(auto data) { // Do something, there are no constraints on data }
缩写函数模板
此外,“auto”可以用作缩写函数模板。这是非约束类型约束的特殊实例,或者换句话说,是“无约束自动参数”。另一方面,“约束自动参数”将采用概念并显示如下:
void function(const Sortable auto& data) { // Do something that requires data to be Sortable // Assuming there is a concept named Sortable }
C 规范的解释
C 规范定义“占位符类型说明符”如下:
type-constraint<sub>opt</sub> auto type-constraint<sub>opt</sub> decltype ( auto )
此类占位符类型说明符指定一个占位符类型,该占位符类型可以通过从初始值设定项推导出来进行后续替换。当在函数声明或 lambda 表达式的“decl-specifier-seq”中使用时,“type-constraintopt auto”形式的占位符类型说明符指示该函数是缩写函数模板(根据 9.3.3.5)。
以上是C 函数可以使用“auto”作为参数类型吗?的详细内容。更多信息请关注PHP中文网其他相关文章!