OSDN Git Service

fix(ref): 修正了一些不明确的表述
authorMargatroid <i@margatroid.xyz>
Sat, 7 Sep 2019 01:16:22 +0000 (09:16 +0800)
committerGitHub <noreply@github.com>
Sat, 7 Sep 2019 01:16:22 +0000 (09:16 +0800)
docs/lang/reference.md

index a40e664..46e0300 100644 (file)
@@ -121,26 +121,26 @@ numbers.push_back(std::move(s));
 char &get_val(std::string &str, int index) { return str[index]; }
 ```
 
-尽管有了右值引用,你仍然不能返回在函数中新分配的栈空间,如果一定要在函数内分配新的空间并返回,请使用堆分配。例如如下两个函数都会产生悬垂引用,导致内存错误
+你不能返回在函数中的局部变量的引用,如果一定要在函数内的变量。请使用动态内存。例如如下两个函数都会产生悬垂引用,导致未定义行为
 
 ```cpp
-std::vector<int>& getLVector() {
+std::vector<int>& getLVector() { // 错误:返回局部变量的左值引用
   std::vector<int> x{1};
   return x;
 }
-std::vector<int>&& getRVector() {
+std::vector<int>&& getRVector() { // 错误:返回局部变量的右值引用
   std::vector<int> x{1};
   return std::move(x);
 }
 ```
 
\8f³å\80¼å¼\95ç\94¨å\8fªè\83½å\9c¨é\83¨å\88\86æ\83\85å\86µä¸\8bå\8f¯ä»¥é\81¿å\85\8dè¿\94å\9b\9eå\80¼æ\8b·è´\9dï¼\8cå\89\8dæ\8f\90æ\98¯å®\83æ\8c\87å\90\91ç\9a\84空é\97´å\9c¨è¿\9bå\85¥å\87½æ\95°å\89\8då·²ç»\8få\88\86é\85\8d
½\93å\8f³å\80¼å¼\95ç\94¨æ\8c\87å\90\91ç\9a\84空é\97´å\9c¨è¿\9bå\85¥å\87½æ\95°å\89\8då·²ç»\8få\88\86é\85\8dæ\97¶ï¼\8cå\8f³å\80¼å¼\95ç\94¨å\8f¯ä»¥é\81¿å\85\8dè¿\94å\9b\9eå\80¼æ\8b·è´\9d
 
 ```cpp
 struct Beta {
   Beta_ab ab;
   Beta_ab const& getAB() const& { return ab; }
-  Beta_ab&& getAB() && { return move(ab); }
+  Beta_ab&& getAB() && { return std::move(ab); }
 };
 
 Beta_ab ab = Beta().getAB();  // 这里是移动语义,而非拷贝