C 11新特性之追蹤返回型別函式

2021-08-20 22:11:33 字數 380 閱讀 1580

追蹤返回型別函式是指把函式的返回型別後置,這在模板型別推導過程中非常有用處,比如下面的**:

templatedecltype(t1+t2) sum(t1&t1, t2& t2)

在上面這個函式定義中,decltype無法推導出t1+t2的型別,因為編譯器是從左向右處理的,當處理到decltype的時候,編譯器還不知道t1+t2的型別, 追蹤返回函式就是為了解決這個問題而生的,上面的函式我們可以宣告如下:

templateauto sum(t1&t1, t2& t2) -> decltype(t1+t2)

這樣的話,decltype就可以根據t1,t2的型別推導出函式sum的返回型別了。

C 11新特性 尾置返回型別

尾置返回型別是在c 11標準中新增的語法,可以用於任何函式定義中,旨在方便複雜函式的定義。尾置返回型別跟在形參列表後面並以乙個 符號開頭。為了表示函式真正的返回型別跟在形參列表之後,需要在本應該出現返回型別的地方放置乙個auto關鍵字。cpp view plain copy 宣告乙個返回指向陣列的指...

C 11新特性之POD型別

pod plain old data 是c 中非常重要的乙個概念,用來描述乙個型別的屬性其中plain表示這個型別是個平凡的型別,old表示其與c的相容性。c 11中將pod劃分為兩個基本概念 平凡的 trival 和標準布局 standardlayout 什麼是平凡性呢?通常乙個平凡的類或者結構體...

c 11新特性 lambda函式

lambda歷史悠久,在數理邏輯和電腦科學領域,lambda被用來表示一種匿名函式這種匿名函式代表了一種 演算 lambda calculus 但是在c 領域直到c 11才引入lambda表示式,本文先打算從lambda函式入手 後續會繼續從lambda與仿函式 lambda基礎應用 lambda的...