int v[1];
auto p1 = v;
auto &p2 = v;
auto *p3 = v;
p1
属于类型int *
(同样适用于p3
)。特别是在这个微不足道的样本中,我发现p2
( int (&)[1]
)更有用,因为它固有的数组语义,例如我可以申请sizeof
on p2
给予与sizeof
on v
.
有这方面的标准报价吗?
为什么默认引用是一个坏主意? (对于这个数组的情况,我的意思是,现在几乎没有 C++ 程序员关心它们......)
auto
推导出非引用类型。
auto&
推导出一个参考。
auto const&
推导出一个const
参考。
auto&&
推导出一个参考,一个const
引用,或右值引用。
这就像调用时的类型推导一样template
功能有效。
template<typename T>
void foo( T t );
T
will never由 be 引用类型推导——推导时它始终是值类型。
auto
遵循几乎相同的规则:
template<typename T>
void foo( T&& t );
是众所周知的“通用引用”,类似于类型变量auto&&
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)