加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用`auto`作为针对C标准的函数参数?

发布时间:2020-12-16 10:14:13 所属栏目:百科 来源:网络整理
导读:代码是这样的: auto add(auto a,auto b) { return a + b; } 违反ISO c 14标准?该标准的未来版本是否允许代码编写? 解决方法 [Does this] violate the ISO c++14 standard? 是的,您无法在C 14(或C 17)中使用auto声明参数参数.此代码格式错误. Will future
代码是这样的:

auto add(auto a,auto b) { return a + b; }

违反ISO c 14标准?该标准的未来版本是否允许代码编写?

解决方法

[Does this] violate the ISO c++14 standard?

是的,您无法在C 14(或C 17)中使用auto声明参数参数.此代码格式错误.

Will future versions of the standard allow code to be written like that?

当前的Concepts TS允许这样做,它通常被称为简洁的函数模板语法.在Concepts中,含义相当于:

template <class T,class U>
auto add(T a,U b) { return a + b; }

Concepts部分提议还允许使用概念名称,而不仅仅是auto.关于这是否会成为未来C标准的一部分,这是一个悬而未决的问题.

更新:代码在C 20中有效,并且具有与上面显示的功能模板相同的含义(注意:a和b是独立推导的).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读