欢迎光临散文网 会员登陆 & 注册

Godot Source Code Note 1

2023-06-26 15:29 作者:中专人  | 我要投稿

auto 与 template

先贴一下Godot源码core目录下typedefs.h文件中一个函数定义:

可以看到,这里采用了更加灵活的函数模板,使得传递不同类型的实参成为可能。C++14标准中auto关键字可以对返回类型进行推导。

但在C++11标准中,以上写法无法编译通过,应改写为:

虽然C++14中可以省略尾置调用类型的声明,但会有一些问题,比如以下代码:

如果auto推导的变量是引用的话,引用属性会被忽略,所以ReturnRefAuto返回值推导为T,而不是T&。

auto如果作为函数形参声明,则与template功能重复。

但在C++20标准中,auto关键字也可用于函数形参类型推导,比如最开始的MIN函数可以改写为:

部分参考:<<现代C++语言核心特性解析>>。

如侵删。

欢迎评论指正。

Godot Source Code Note 1的评论 (共 条)

分享到微博请遵守国家法律