C++11新特性

來源:互聯網
上載者:User

 

1.右值引用與移動構造語義:

    針對C++對臨時變數只能以值或常引用的形式作為函數實參的問題,右指引用即臨時變數對象的引用,可藉此實現一種新的移動構造複製語義,避免對象拷貝賦值下的大量物件建構複製開銷。http://bbs.chinaunix.net/thread-1251475-1-1.html2.通過使用 extern 來修飾一個模板類,告知編譯器該模板無需在當前編譯單元內執行個體化,編譯器早已在11標準之前實現。3.lambda表示式:定義匿名函數對象,大大減少定義謂詞的開銷(如在STL中),更易被編譯器最佳化。4.類型推斷:11中,auto 關鍵字的語義有所更改,通過運算式的右值來自動推斷左值的類型,定義模板,或需要獲得 Lambda 運算式等匿名對象的類型時,可提供方便。5.傳回值後置式函式宣告文法:類似 lambda 運算式中的傳回值定義方式,模板和普通函數也可以使用類似的文法指定傳回值,例如:

template<class Lhs, class Rhs>
auto adding_func(const Lhs &lhs, const Rhs &rhs) -> decltype(lhs+rhs) {return lhs + rhs;}

顯而易見,這種文法主要用來協助完成模板定義時的類型推斷——在上例中,由於用來推斷傳回型別的“lhs”和“rhs”在“adding_func(...)”之前還未定義,因此必須將傳回值類型定義延遲到參數列表之後。

應注意到,使用這種後置文法時,函數原來指定傳回值類型的位置必須記做“auto”。

6.function模板,泛型函數模板,是如何?對函數對象與函數指標的區別的,神奇。

7.shared_ptr<T>智能指標 引用計數共用對象,可以傳遞撤銷策略給建構函式,便於對像檔案指標這種資源的共用。(weak_ptr,todo)

-----

編譯器支援情況參考:http://www.csdn.net/article/2012-08-13/2808540

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.