校对翻译 (#67)

* 校对翻译

对于这段说明decltype的行为最关键的一段话,原翻译不是很清楚。

* Update item3.md
This commit is contained in:
cellspace 2021-01-18 19:11:59 +08:00 committed by GitHub
parent deb428addf
commit 778135fdb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -138,7 +138,7 @@ authAndAccess(Container&& c,Index i)
为了完全理解decltype的行为你需要熟悉一些特殊情况。它们大多数都太过晦涩以至于几乎没有书进行有过权威的讨论这本书也不例外但是其中的一个会让我们更加理解decltype的使用。
对一个名字使用decltype将会产生这个名字被声明的类型。名字是左值表达式但那不影响decltype的行为decltype确保产生的类型总是左值引用。换句话说如果一个左值表达式除了名字外还有类型那么decltype将会产生 **T&** LEIX .这几乎没有什么太大影响,因为大多数左值表达式的类型天生具备一个左值引用修饰符。举个例子,函数返回左值,几乎也返回了左值引用。
将decltype应用于变量名会产生该变量名的声明类型。虽然变量名都是左值表达式但这不会影响decltype的行为。译者注这里是说对于单纯的变量名decltype只会返回变量的声明类型然而对于比单纯的变量名更复杂的左值表达式decltype可以确保报告的类型始终是左值引用。也就是说如果一个不是单纯变量名的左值表达式的类型是T那么decltype会把这个表达式的类型报告为T&。这几乎没有什么太大影响,因为大多数左值表达式的类型天具备一个左值引用修饰符。例如,返回左值的函数总是返回左值引用。
这个行为暗含的意义值得我们注意,在:
````cpp