首页  >  文章  >  后端开发  >  C 函数可以使用“auto”作为参数类型吗?

C 函数可以使用“auto”作为参数类型吗?

DDD
DDD原创
2024-11-17 06:12:03641浏览

Can C   Functions Utilize

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn