LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 266|回复: 0

auto

[复制链接]
发表于 2024-1-29 23:12:27 | 显示全部楼层 |阅读模式
语法
autodeclaratorinitializer;

[](autoparam1, autoparam2) {};

备注
auto 关键字指示编译器使用已声明变量的初始化表达式或 lambda 表达式参数来推导其类型。

在大多情况下,建议使用 auto 关键字(除非确实需要转换),因为此关键字具有以下好处:

可靠性:如果表达式的类型发生更改(包括函数返回类型发生更改的情况),它也能工作。

性能:确保不会进行转换。

可用性:不必担心类型名称拼写困难和拼写有误。

效率:代码会变得更高效。

可能不需要使用 auto 的转换情况:

你需要一个特定类型,任何其他类型都不行。

例如,在表达式模板帮助程序类型 (valarray+valarray) 中。

若要使用 auto 关键字,请使用它而不是类型来声明变量,并指定初始化表达式。 此外,还可通过使用说明符和声明符(如 const、volatile)、指针 (*)、引用 (&) 以及右值引用 (&&) 来修改 auto 关键字。 编译器计算初始化表达式,然后使用该信息来推断变量类型。

auto 初始化表达式可以采用多种形式:

通用初始化语法,例如 auto a { 42 };。
赋值语法,例如 auto b = 0;。
通用赋值语法,它结合了上述两种形式,例如 auto c = { 3.14159 };。
直接初始化或构造函数样式的语法,例如 auto d( 1.41421f );。
有关详细信息,请参阅初始值设定项和本文档后面的代码示例。

当 auto 用于在基于范围的 for 语句中声明循环参数时,它使用不同的初始化语法,例如for (auto& i : iterable) do_action(i);。 有关详细信息,请参阅基于范围的 for 语句 (C++)。

auto 关键字是类型的占位符,但它本身不是类型。 因此,auto 关键字不能用于强制转换或运算符,如 sizeof 和(用于 C++/CLI)typeid。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表